在使用它填充AutoCompleteTextView之前将String数组转换为ArrayList有什么好处?

时间:2018-03-29 08:17:03

标签: android autocompletetextview

在资料页面上,我找到了AutoCompleteTextView的以下示例:

int layoutItemId = android.R.layout.simple_dropdown_item_1line;
String[] dogArr = getResources().getStringArray(R.array.dogs_list);
List<String> dogList = Arrays.asList(dogsArr);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, layoutItemId, dogList);

AutoCompleteTextView autocompleteView =
(AutoCompleteTextView) findViewById(R.id.autocompleteView);
autocompleteView.setAdapter(adapter);

来源:https://materialdoc.com/components/autocomplete/

这部分有什么意义:

List<String> dogList = Arrays.asList(dogsArr);

为什么当AutoCompleteTextView也采用String数组时将其转换为ArrayList?

3 个答案:

答案 0 :(得分:0)

当您知道只使用固定数量的元素时,您应该使用Array。如果没有,请使用列表。

我的个人意见是使用清单。列表使代码非常不灵活且易于使用。

答案 1 :(得分:0)

  • 您可以在编译时初始化Java数组,例如:

字符串数据[] = {&#34; a&#34;,&#34; b&#34;,&#34; c&#34; };

  • 在Java的旧版本中,还存在类型安全的情况。 ArrayList元素必须转换为原始类型,而Java数组类型为safe。
  • Java数组是该语言的一部分,您将无法更改它们。 ArrayList是Java API的一部分。如果您需要(我不推荐它)您可以替换自己的库来实现ArrayList作业

查看此问题以获取更多信息

See This question

答案 2 :(得分:0)

如果你有一个数组,它必须有一个固定的大小。动态添加和删除元素很难管理,每次添加新项目时都必须创建新数组。同样,删除项目。

使用ArrayList,它很容易管理,因为它不会以静态大小创建。因此,在运行时,您可以轻松添加和删除元素。

ArrayList是这里使用的理想数据结构。