-1

棒グラフを表す2DStringArrayがあります。最初の次元は列(または高さ)を表し、2番目の次元は行(または幅)を表します。最後の要素はチャートの一番下です。

したがって、配列の2次元に要素がない場合、棒グラフはその最上部に到達します。空のチャートがすべて印刷されないようにするために、次のように実装しました。

Arrays.toString(histogramm[i]).contains("x")

ただし、2次元だけでなく、xが含まれているかどうかは配列全体をチェックしているようです。

//Print
     System.out.println();
     for (int i = 0; i < 50; i++){
        //only if there is any value, otherwise lots of empty space
        if(Arrays.toString(histogramm[i]).contains("x")){
                System.out.print("      ");
           for (int f = 0; f < 5; f++){
              System.out.print(histogramm[i][f] + " ");
           }
        }
        System.out.println();
     }

グラフ全体ではなく、単一のディメンションの値を確認するにはどうすればよいですか?

4

1 に答える 1

1

各 stepp で Arrays.toString() を変換せずに x を簡単に見つけるには、ヒストグラムに array[] の代わりに ArrayList を使用することをお勧めします。

List<List<String>> histogram = new ArrayList<ArrayList<String>>();

アクセスするには:ヒストグラム(x、y);

histogram.get(x).get(y);

すべてを検索する: 既存の x

boolean isFound = false;
// using classical for loop
for(int x = 0; x < histogram.size(); x++) {
   ylist = histogram.get(x);
   // using for each
   for (String yval: xlist) {
      if (yVal.equals("x")) {
         isFound = true;
      }
   }  
}

if (isFound) {
  // action for found
}
于 2013-01-14T17:20:36.790 に答える