Android 二维数组和数组列表最佳实践



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

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

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

String[][] myArray2;

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

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

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

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

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

最新更新