0

我的 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;

}
}
4

3 回答 3

3

您需要以这样的方式覆盖toString()方法SelectionSortArray

class SelectionSortArray {
   ....


   public String toString() {
      return String.valueOf(num);
   }

}
  • 当你System.out.println你的对象,JVM将打印toString()对象的表示

  • 如果此方法未被覆盖,它将显示 的默认toString()实现Object,即classname@hexdecimal_code.

于 2013-08-29T16:37:16.780 回答
1

不,你没有一个整数数组,你有一个SelectionSortArray没有明确原因的 s 数组。为了使您现有的代码正常工作,您需要toString()SelectionSortArray. 要使您现有的代码健全,只需将您的SelectionSortArray(不是数组)替换为intor Integer

于 2013-08-29T16:38:14.287 回答
0

它实际上打印SelectionSortArray 对象toString。这将是您SelectionSortArray对象的 @ 和哈希码的类名。

toStringrefObject类中的方法。

public String toString() {
      return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

你应该重写类的toString方法,就像@sanbhat 建议的那样。ObjectSelectionSortArray

于 2013-08-29T16:40:40.383 回答