0

我想知道是否有人可以回答我相当愚蠢的问题,即在编程时使用哪个更好的做法。

我知道制作一个二维数组,我可以使用:

ArrayList<ArrayList<String>> myArray = new ArrayList<ArrayList<String>>();

或者

String[][] myArray2;
4

2 回答 2

8

以您展示的方式使用 ArrayList 是完全可以的。但是,仅当您确实需要数组在运行时增长和缩小时才使用数组列表。如果您不确定是否需要扩大或缩小数组,请继续使用 ArrayList 开始。如果你不需要数组是动态的,你应该使用 String[][]。但是,String[][] 在分配后无法增大或缩小大小。

如果您的应用程序是性能密集型的,我强烈建议您尝试编写使用 String[][] 的应用程序。更重要的是,尽量避免大量的字符串操作,因为这会导致大量的分配(从而导致垃圾收集)。如果您可以改用 CharBuffer[][],您将能够避免对象分配。同样,如果您正在编写一个简单的应用程序,并且您的应用程序分配(并因此最终导致垃圾收集)并不重要,那么使用 ArrayList 会使事情更容易处理。

由于您认为自己是菜鸟,因此您可能希望从 ArrayList 开始,因为它更容易处理。

此外,这并不是一个真正的 Android 问题,而更像是一个 Java 问题。

于 2012-08-06T13:15:15.873 回答
0

由于列表可以增加大小,因此如果您不确定二维数据结构的大小,它们是最佳解决方案。如果您知道结构有多大,那么请改用普通数组,因此 List 对象会导致的少量开销不会成为问题。

于 2012-08-06T13:16:23.720 回答