2016-12-23 18 views
0

私の以前の質問では、2次元配列の各配列をどのように出力するかを知ったので、以下でこのコードを完成させました。私はこれが1つ/それを行う最も速い方法であるかどうか知りたいですか? if文と入れ子のfor-loops(?)だけではないので、これは線形時間でなければなりません2dアレイを印刷する最も速い方法ですか?

もしそうでないなら、最も効率的な方法は何ですか?

public class Print{ 
    public static void main(String[] args){ 

     int[][] myArray = {{1,2,3,4},{5,6,7,8}}; 

     int i=0; 
     System.out.print("["); 
     for(int j=0; j<myArray[0].length; j++){ 
      System.out.print(myArray[i][j]); 
      if(j != myArray[0].length-1){ 
       System.out.print(", "); 
      } 
      if(j == myArray[0].length-1){ 
       System.out.print("], "); 
      } 
     } 
     int k=1; 
     System.out.print("["); 
     for(int j=0; j<myArray[1].length; j++){ 
      System.out.print(myArray[k][j]); 
      if(j != myArray[1].length-1){ 
       System.out.print(", "); 
      } 
      if(j == myArray[1].length-1){ 
       System.out.print("]"); 
      } 
     } 
    } 
} 

Output: [1, 2, 3, 4], [5, 6, 7, 8] 

編集:私はこれを短くコードする方法を探していません。私はむしろアルゴリズムの速度を最速に探しています。

+1

これは簡単な方法です: 'Arrays.deepToString(myArray)' – shmosel

+0

これはどうしますか?その背後には機能がありますか?私は今それをテストするか分からなかった。 Btw私はそれをコードする短い方法を求めているのではなく、より速いアルゴリズム。 –

+0

http://stackoverflow.com/q/19648240/4821941 – m3kkis

答えて

1

あなたは簡単にこのようなコードを使用することができます:

int[][] myArray = {{1,2,3,4},{5,6,7,8}}; 
System.out.print(Arrays.deepToString(myArray)); 

それははるかに高速になります。

+0

*「それはもっと速くなるでしょう」*なぜそれを考えるのですか? – Tom

+0

私はまだこの短いコードの背後にあるものを知りません。その背後には(長い?)コードが必要ですが、投稿したコードよりも速くて遅いかどうかわかりません。これは、Eclipseのようなソフトウェアで定義されているためです。 –

+0

このメソッドにカーソルを合わせ、 "F3"を押します。 –

関連する問題