Java – 向二维数组添加值以及如何查看数组?

我有一个数组(Arr)。 我用值填充points1和point2。

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; } 

这是有效的,但是,当我有五个或更多(points1,points2,points3 ……)时,我如何制作“public 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" } } 

这是一个有效的例子

 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; } 

我不清楚你想要实现什么,但Java不是PHP。 Java有一套广泛的集合,它们可以提供比简单数组更好的覆盖范围。

由于我不完全确定你要做什么,我无法真正告诉你什么集合可以完成这项工作,但你可以阅读像Maps和ArrayList这样的东西。

你可以制作一个’Arr’的ArrayList

 ArrayList list = new ArrayList(); 

类似地,您可以执行ArrayList ,或者如果要将对象Arr与键一起存储,则可以开始使用Maps。

一旦你使用了Java Collection,打印这些的最清晰的方法就是使用类似的东西来循环它

 for(Arr a : list){ Log.d("my_tag", "My list contains"+a.toString()); } 

您可以使用ArrayList代替2D数组。

 ArrayList points = new ArrayList(); 

现在,访问索引如下:

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

尝试打印arraylist points ,以查看近似字符串输出:

 System.out.println(points); 

您需要在类Arr中实现toString()方法,然后调用

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

这里解释如何在logcat中查看android的数组