2

私は配列(Arr)を持っています。points1 と points2 に値を入力します。

public class Arr {
    float pointX;
    float pointY;
    boolean yesNo;
    String text; 
}

public Arr points1[];
public Arr points2[];   

points1 = new Arr[100];
for (int i = 0; i < 100; i++) points1[i]= new Arr();    

for (int j = 0; j < 100; j++) {
    points1[j].pointX = getFloat;
    points1[j].pointY = getFloat;
    points1[j].yesNo = getBoolean;
    points1[j].text = getText;
}   

points2 = new Arr[100];
for (int x = 0; x < 100; x++) points2[x]= new Arr();    

for (int y = 0; y < 100; y++) {
    points2[y].pointX = getFloat;
    points2[y].pointY = getFloat;
    points2[y].yesNo = getBoolean;
    points2[y].text = getText;
}

これは機能しますが、5 つ以上 (point1、point2、point3...) がある場合、どうすれば「パブリック Arr points[][]」を作成できますか? 次に、points[0][22].pointX または points[1][10].text? などで値を入力して取得します。

また、PHP で var_dump のような points[][] 配列を確認するにはどうすればよいですか? 配列を一覧表示する方法 var_dump の例:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
4

4 に答える 4

1

これは実用的な例です

package com.stackoverflow.q15134193;

public class Test1 {
    public static Arr[][] points;
    static float getFloat = 1;
    static boolean getBoolean = true;
    static String getText = "hi";

    public static void main(String[] args) {

        points = new Arr[100][];
        for (int i = 0; i < points.length; i++) {
            points[i] = new Arr[100];
            for (int j = 0; j < points[i].length; j++)
                points[i][j] = new Arr();
        }

        for (int i = 0; i < points.length; i++) {
            for (int j = 0; j < points[i].length; j++) {
                points[i][j].pointX = getFloat;
                points[i][j].pointY = getFloat;
                points[i][j].yesNo = getBoolean;
                points[i][j].text = getText;
            }
        }

        for (int i = 0; i < points.length; i++)
            for (int j = 0; j < points[i].length; j++)
                System.out.println("X: " + points[i][j].pointX + " Y: " 
                        + points[i][j].pointY + " YesNo: " 
                        + points[i][j].yesNo 
                        + " text: "+ points[i][j].text);
    }
}

class Arr {
    public float pointX;
    public float pointY;
    public boolean yesNo;
    public String text;
}
于 2013-02-28T11:49:59.503 に答える
0

あなたが何を達成しようとしているのか完全にはわかりませんが、JavaはPHPではありません。Javaには、単純な配列よりもはるかに優れたカバレッジを提供するコレクションの広範なセットがあります。

あなたが何をしようとしているのか完全にはわからないので、どのコレクションがその仕事をすることができるかを実際に伝えることはできませんが、MapsやArrayListなどを読むことはできます。

たとえば、'Arr'sのようなArrayListを作成できます。

ArrayList<Arr> list = new ArrayList<Arr>(); 

同様にArrayList<Arr, Arr>、オブジェクトArrをキーと一緒に保存して検索する場合は、マップを使用するか、マップの操作を開始できます。

Javaコレクションを使用している場合、これらを印刷する最も明確な方法は、次のようなものを使用して、Javaコレクションをループすることです。

for(Arr a : list){
  Log.d("my_tag", "My list contains"+a.toString());
}
于 2013-02-28T11:25:35.077 に答える
0

クラス Arr に toString() メソッドを実装してから、呼び出す必要があります。

Log.i("mytag", Arrays.toString(points1));

here で説明されているように、Android の logcat で配列を表示する方法

于 2013-02-28T11:30:16.253 に答える
0

2D 配列の代わりに、 を使用できますArrayList

ArrayList<Arr> points = new ArrayList<Arr>();

次に、次のようにインデックスにアクセスします。

points.get(22).pointX OR points.get(10).text

arraylist を印刷してpoints、ほぼ文字列の出力を確認してください。

System.out.println(points);
于 2013-02-28T11:29:28.210 に答える