0

我正在学习如何在 Android 应用程序上制作 ListView,我想了解这两个,一些示例使用 String[],一些使用 ArrayList....但我看不到人们如何在 String[] 中添加更多项目。

4

2 回答 2

2
  • 首先,String[] 属于常规数组,这意味着该数组所包含的数据大小是固定的,不能更改。否则,ArrayList 不是。它可以随着数量元素的增长而增长。此外,ArrayList 具有一组访问元素和修改元素的方法。但是,ArrayList 只能存储 Object,存储速度比较慢。

  • 对于为什么在 ListView 或 RecyclerView 中的答案,大多数情况下,我们使用 ArrayList 而不是 Array,因为 ArrayList 具有扩展能力。例如,在 NoteApp 中,如果使用 Array,则必须为便笺设置固定的分配编号,但如果添加新便笺,则必须以编程方式更改。它无法调整大小以包含新注释。因此,ArrayList适合这种情况。

于 2020-10-18T04:25:32.080 回答
1

String[] 是一种原始数据类型,一个具有固定大小的简单数组,必须在COMPILE TIME知道并且不能在RUNTIME更改。

考虑:

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 可能是适合该工作的。

于 2020-10-18T04:32:38.240 回答