2017-02-20 5 views
0

私は、そのメンバーとして整数の1次元配列を持つArrayList ArrayList<int[]>を持っています。私は、デバッグしていますし、私の時計は、以下のコードからtmpに設定している場合はJavaで整数配列をオーバーライドすることはできますか?

、私はint[]toStringメソッドをオーバーライドする必要があることを意味する、tmpの内容を見ることができるようにしたいですか?

現時点では、printメソッドを使用して自分のコンテンツを印刷して見ることができます。しかし、私はそれを理想的にやりたいとは思わないし、tmpの内容とデバッガのメンバーを見たいと思う。

PS:私が言う、などのデバッグウォッチ式を持っている必要はありません、tmp.get(0)[0]など

public class TryPrinting { 
    public static void main(String[] args) { 
     int[][] people = { {7,0}, {7,1}, {6,1}, {5,0}, {5,2}, {4,4} }; 

     TryPrinting obj = new TryPrinting(); 
     obj.test(people); 
    } 

    public void test(int[][] people) 
    { 
     int n = people.length; 
     ArrayList<int[]> tmp = new ArrayList<>(); 
     for (int i = 0; i < n; i++) 
     { 
      tmp.add(people[i][1], new int[]{people[i][0], people[i][1]}); 

      print(tmp);//This works 
      System.out.println(tmp);//But I want this to work 
      System.out.println(""); 
     } 

    } 

    /* print al */ 
    public void print(ArrayList<int[]> al) 
    { 
     for(int i = 0;i<al.size();i++) 
     { 
      print(al.get(i)); 
     } 
     System.out.println(""); 
    } 

    /* print 1d array */ 
    public void print(int[] a) 
    { 
     for(int i = 0;i<a.length;i++) 
      System.out.print(a[i] + " "); 
    } 
} 
+0

int型にint型にすると、クラス型のオブジェクトになりますが、toStringも得られると思います... – ultrajohn

+0

コードのコメントは、コンソールに印刷しようとしていることを意味しています。しかし、あなたの質問は、デバッガに表示させることを意味します。どちらですか?どのIDEを使用していますか? – shmosel

+0

あなたの質問のタイトルに答えて、答えはいいえです。 – shmosel

答えて

2

配列クラスはfinalです:あなたはそれらを拡張し、そのメソッドをオーバーライドすることはできません。

が簡単に配列の内容を印刷するには、このように、java.util.Arraysでメソッドを使用することができます。

System.out.println(Arrays.toString(tmp)); 

選択肢は、「適切な」toStringメソッドを実装する配列の代わりにList Sを使用することです。

関連する問題