【发布时间】:2020-10-18 02:46:30
【问题描述】:
我正在学习如何在 Android 应用程序上制作 ListView,我想了解这两个,一些示例使用 String[],一些使用 ArrayList....但我看不到人们如何在 String[ 中添加更多项目].
【问题讨论】:
标签: java android arrays listview
我正在学习如何在 Android 应用程序上制作 ListView,我想了解这两个,一些示例使用 String[],一些使用 ArrayList....但我看不到人们如何在 String[ 中添加更多项目].
【问题讨论】:
标签: java android arrays listview
首先,String[]属于常规数组,这意味着该数组所包含的数据大小是固定的,不能改变。否则,ArrayList 不是。它可以随着数量元素的增长而增长。此外,ArrayList 具有一组访问元素和修改元素的方法。但是ArrayList只能存储Object,存储速度比较慢。
对于为什么在 ListView 或 RecyclerView 中的答案,大多数情况下,我们使用 ArrayList 而不是 Array,因为 ArrayList 具有扩展能力。例如,在 NoteApp 中,如果使用 Array,则必须为便笺设置固定的分配编号,但如果添加新便笺,则必须以编程方式更改。它无法调整大小以包含新注释。因此,ArrayList 适合这种情况。
【讨论】:
String[] 是一种原始数据类型,一个具有固定大小 的简单数组,必须在 COMPILE TIME 知道并且不能在 COMPILE TIME 更改强>运行时间。
考虑:
String[] foo = new String[2];
在这里,您声明了一个简单的字符串数组,它可以容纳 2 个字符串。 让我们添加一些东西:
foo[0] = "String One";
foo[1] = "String Two";
你也可以这样转发声明:
String[] foo = {"String One", "String Two"};
您可以更改 foo 的内容,但您不能添加另一个字符串或删除它,因为它具有固定大小。
另一方面,ArrayList 是一个动态列表,您可以在其中随时在程序中添加或删除 T 类型的项目。 大小不需要在 COMPILE TIME 定义,Arraylist 的内容可以在 RUNTIME 添加或删除。它是两者中最灵活的数据结构。
考虑:
ArrayList<String> foo = new ArrayList<>();
声明动态数组。它具有可变大小,并且无需在初始化时定义元素的数量。您可以在 RUNTIME 随时根据需要添加或删除元素。
请注意:
foo.add("String One");
foo.add("String Two);
可以随时添加到您的程序中。删除元素也是如此。由于 ArrayList 是一个(通用)类,它还有一堆普通数组没有的有用方法! 另请阅读 Java 泛型以了解完整情况。
所以这取决于你想用 ListView 做什么。如果您只想显示一组固定的字符串然后选择 String[],或者您需要通过添加或删除数据来动态更改视图的内容,那么 ArrayList 可能是适合该工作的。
【讨论】: