簡體   English   中英

在Java中的對象內部打印數組

[英]Print an array inside of object in Java

我有一個類和一個構造函數,用數字填充數組並對它進行排序:

public BinaryArray(int size){

    data = new int[size];
    for(int i:data){
        data[i] = 10 + generator.nextInt(90);
    }        
    Arrays.sort( data );
}

然后在我有主菜單的其他類中,我要打印數組:

BinaryArray searchArray = new BinaryArray( 15 ); //  create the Object

    for(BinaryArray i:searchArray){
        System.out.println( searchArray[i] );
    }

但是它是錯誤的..我也編碼了這個,但是它打印了其他。

BinaryArray searchArray = new BinaryArray( 15 );
System.out.println( searchArray );

在具有數組的類中創建一個getter方法:

public int[] getArray() {
    return data;
}

然后在您的主要方法中使用該方法:

BinaryArray searchArray = new BinaryArray(15);
for (int i : searchArray.getArray()) {
    System.out.println(i);
}

編輯

您的構造函數有一個主要錯誤:

for(int i:data){
    data[i] = 10 + generator.nextInt(90);
}

i將始終設置為0因為此數組中的每個字段都初始化為0 因此,只有第一個索引將被設置為隨機數。 其他人將保持其0。

要解決此問題,請改用以下循環:

for(int i = 0; i < data.length; i++){
  data[i] = 10 + generator.nextInt(90);
}

這應該做。

1-為數組創建一個吸氣劑。

public int[] getArray() {
 return data;
}

2-顯示陣列

BinaryArray searchArray = new BinaryArray( 15 ); // create the Object

for(int i:searchArray.getArray()){
    System.out.println( i );
}

首先,在上面的代碼中,我始終等於0,您必須使用索引進行迭代

data = new int[size];
for(int i:data){
    data[i] = 10 + generator.nextInt(90);
}

您可以在BinaryArray實現toString

public class BinaryArray
{
    private int[] data;

    public BinaryArray(int size)
    {
        data = new int[size];
        for(int i: = 0; i < size; i++){
            data[i] = 10 + generator.nextInt(90);
        }        
        Arrays.sort( data );
    }

   public String toString()
   {
       for (int i : data)
       {
            System.out.println(i);
       }
   }
}

接着

BinaryArray searchArray = new BinaryArray( 15 );
System.out.println( searchArray );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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