我的java程序存在问题。我使用SelectionSortArray类创建了一个整数数组。我遇到的问题是,当我尝试打印出我创建的数组的内容时,它会显示一些其他随机代码行,这显然是一个错误。以下是我到目前为止的工作。如果你们可以复制并粘贴它并自己运行并告诉我有什么问题我会很感激。再次,当我运行我的demo / main时,它不会打印我的数组中的内容。
最终结果应打印出来:
10
20
30
我的演示/主要:
public static void main(String[] args) {
SelectionSortArray[] ints = new SelectionSortArray[3];
ints [0] = new SelectionSortArray(10);
ints [1] = new SelectionSortArray(20);
ints [2] = new SelectionSortArray(30);
for (int index = 0; index < ints.length; index++) {
System.out.println(ints[index]);
}
}
我用来创建数组的课程:
public class SelectionSortArray implements Comparable<SelectionSortArray> {
public int num;
public SelectionSortArray(int initialNum) {
num = initialNum;
}
public int compareTo(SelectionSortArray other) {
int result;
if (num == other.num) {
result = 0;
} else if (num < other.num) {
result = 1;
} else {
result = 2;
}
return result;
}
}
答案 0 :(得分:3)
您需要覆盖toString()
类似
SelectionSortArray
方法
class SelectionSortArray {
....
public String toString() {
return String.valueOf(num);
}
}
当你System.out.println
你的对象时,JVM将打印对象的toString()
表示
如果未覆盖此方法,则会显示toString()
的默认Object
实施,即classname@hexdecimal_code
。
答案 1 :(得分:1)
不,你没有一个整数数组,你有一个SelectionSortArray
的数组,没有明确的理由。要使现有代码有效,您需要在toString()
上实施SelectionSortArray
。要使现有代码理智,只需将SelectionSortArray
(不是数组)替换为int
或Integer
。
答案 2 :(得分:0)
它实际打印SelectionSortArray
个对象toString
。这将是带有@ {和1 {/ 1}}对象的哈希码的类名。
SelectionSortArray
的{{1}}课程中的 toString
方法。
Object
您应该将public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
类的toString
方法覆盖为Object
,就像@sanbhat建议的那样。