[英]Printing out contents of an array?
我的Java程序有問題。 我使用SelectionSortArray類創建了一個整數數組。 我遇到的問題是,當我嘗試打印出創建的數組的內容時,它會顯示其他一些隨機的代碼行,這顯然是錯誤的。 以下是我到目前為止的工作。 如果你們可以復制並粘貼並自己運行,並告訴我是什么錯誤,我將不勝感激。 同樣,當我運行演示/主程序時,它不會從陣列中打印內容。
最終結果應打印出以下內容:
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;
}
}
您需要在SelectionSortArray
重寫toString()
方法,如下所示
class SelectionSortArray {
....
public String toString() {
return String.valueOf(num);
}
}
當您使用System.out.println
對象時,JVM將打印該對象的toString()
表示形式
如果不重寫此方法,它將顯示Object
的默認toString()
實現,即classname@hexdecimal_code
。
不,您沒有整數數組,沒有明確的理由,您有SelectionSortArray
數組。 為了使現有代碼正常工作,您需要在SelectionSortArray
上實現toString()
。 為了使您現有的代碼保持理智 ,只需將您的SelectionSortArray
(不是數組)替換為int
或Integer
。
它實際上將SelectionSortArray
對象打印到toString
。 這將是帶有@和您SelectionSortArray
對象的哈希碼的類名。
ref的 Object
類中的toString
方法。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
您應該像@sanbhat建議的那樣將Object
類的toString
方法重寫為SelectionSortArray
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.