我正在为我的Intro to Java课程进行一项任务,目前我正试图对整数数组进行排序。类型转换点值
我从点对象数组中获取值p
,并将它们传递给相同大小的int数组pSize
。我所需要的是将点对象的值x
作为类型转换为int
并获取数组排序。但是,这不是发生。下面是代码:
import java.util.*;
import java.awt.*;
public class doCheckWin {
// Class Fields
private Point[] p;
private static int pSize;
/*
Class Constructor.
Creates an array of point objects that holds the user's
location of pieces.
*/
public doCheckWin(Point[] p) {
this.p = p;
pSize = p.length;
}
public void checkHorizontal() {
int[] col = new int[pSize];
for(int i=0; i<p.length; i++) {
col[i] = (int)p[i].getX();
}
Arrays.sort(col);
System.out.println(Arrays.toString(col));
}
}
这里的从另一个classthat该方法通过点对象:
public void checkWin(Point[] p) {
doCheckWin dcw = new doCheckWin(p);
dcw.checkHorizontal();
}
当我打印阵列筛选,的值是整数...用getX
它们改变为双但类型转换到int
当它不工作...
的问题是:
- 将类型为
x
(即:10.0)的值转换为整数不起作用。当在屏幕上输出结果时,我仍然得到10.0。 Arrays.sort(col)
未排序数组。
什么我得到
10.0
13.0
12.0
11.0
3.0
的输出样本什么我想要
3
10
11
12
13
编辑:下面是用来打印出数组的代码:
Arrays.sort(col);
for(int i=0; i<col.length; i++) {
System.out.println(col[i]);
}
是否确定要打印正确的阵列? – Kylo
你正在打印col还是p?你能显示打印代码吗? –
你可以添加你用来打印数组的代码吗?也不需要创建一个新的Point对象或强制转换 - 只需要这样做:col [i] = p [i] .x;最简单的选择通常是最好的选择。 :) –