簡體   English   中英

打印出數組的內容?

[英]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 (不是數組)替換為intInteger

它實際上將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM