2011-08-02 12 views
2

私は静的な値のセットを持つ4次元配列を持っています。しかし、私の問題は、私はAPIからいくつかのデータを取得し、実行時にの間に4次元配列に入れなければならないということです。私はこれを行う方法がわかりません。ごくわずかなアイデアが評価されます。ここで私の四次元配列の静的な定義を示す私のサンプルです。ランタイムで4次元配列にデータを割り当てる

static final String listdesc[][][][] = 
{ 
    { // grey 
     { // lightgray 
     { "grey", "grey only" }, 
     { "lightgrey","#D3D3D3" }, 
     { "dimgrey","#696969" } 
     }, 
     { // darkgray 
     { "grey", "darkgrey" }, 
     { "sgi grey 92","#EAEAEA" } 
     } 
    }, 
    { // blue 
     { // lightblue 
     { "blue", "lightblue" }, 
     { "dodgerblue 2","#1C86EE" } 
     }, 
     { // darkblue 
     { "blue", "darkblue" }, 
     { "steelblue 2","#5CACEE" }, 
     { "powderblue","#B0E0E6" } 
     } 
    }, 
    { // yellow 
     { // lightyellow 
     { "yellow", "lightyellow" }, 
     { "yellow 1","#FFFF00" }, 
     { "gold 1","#FFD700" } 
     }, 
     { // darkyellow 
     { "yellow", "darkyellow" }, 
     { "darkgoldenrod 1","#FFB90F" } 
     } 
    }, 
    { // red 
     { // lightred 
     { "red", "lightred" }, 
     { "indianred 1","#FF6A6A" } 
     }, 
     { // darkred 
     { "red", "darkred" }, 
     { "firebrick 1","#FF3030" }, 
     { "maroon","#800000" } 
     }, 

    } 
}; 

答えて

0

AsyncTask /バックグラウンドでデータを取得し、これを行うpostExecuteでそれを割り当てます。デザイナーの香りのように聞こえる

listdesc[][][][]; 
for (int i=0; i<listdesc.length; i++) { 
    for (int j=0; j<listdesc[i].length; j++) { 
     for (int k=0; k<listdesc[i][j].length; k++) { 
      for (int m=0; m<listdesc[i][j][k].length; m++) { 
       // populate with values 
      } 
     } 
    } 
} 
1

primitive obsession code smellと呼ばれています。あなたはそれを作成するために、適切なデータ構造やAPIとの4D文字列配列を置き換える必要があります。

ColorsData data = new ColorsData(); 
ColorSection section = data.addSection("gray"); 
section.setLightColors(
     "grey only", 
     Color.create("lightgray", "#D3D3D3"), 
     Color.create("dimgray", "#696969")) 
section.setDarkColors(
     "darkgray", 
     Color.create("sgi grey 92", "#EAEAEA") 
); 
section = data.addSection("blue") 
... 
+3

) – alphazero

+0

@alphazeroあなたが何を意味するのですか? :) –

+1

")"(それは私のロシア語のsmilie +あなたの '原始的な強迫観念のコードのにおい'カルバンクラインの広告を思い出させる)) – alphazero

0

パブリッククラスソース {

public static void main(String[] args) 
{ 

    Random r = new Random(); 
    int [][][][] a = new int[r.nextInt(10)+1][][][]; 

    for(int i=0;i<a.length;i++) 
    { 
     a[i] = new int [(r.nextInt(5)+1)][][]; 
     for(int j=0;j<a[i].length;j++) 
     { 
      a[i][j] = new int[(r.nextInt(5)+1)][]; 
      for(int k=0;k<a[i][j].length;k++) 
      { 
       a[i][j][k] = new int [(r.nextInt(5)+1)]; 
       for(int l=0;l<a[i][j][k].length;l++) 
       { 
        a[i][j][k][l] = r.nextInt(101)+100; 
       } 
      } 
     } 
    } 
    for(int i=0;i<a.length;i++) 
    { 
     System.out.println("3D #"+i); 
     for(int j=0;j<a[i].length;j++) 
     { 
      System.out.println("2D #"+j); 
      for(int k=0;k<a[i][j].length;k++) 
      { 
       System.out.println("1D #"+k); 
       for(int l=0;l<a[i][j][k].length;l++) 
       { 
        System.out.print(a[i][j][k][l] + " "); 
       } 
       System.out.println(); 
      } 
      System.out.println(); 
     } 
     System.out.println(); 
    } 
    System.out.println(); 

} 
+0

こんにちは、私はStackOverflowへようこそ。コードをダンプするだけではなく、あなたの答えをよりよく理解できるように考え方を説明してください。ありがとう。 – Cthulhu

関連する問題