Android 在填充AutoCompleteTextView之前,将字符串数组转换为ArrayList有什么好处?
在资料页上,我找到了Android 在填充AutoCompleteTextView之前,将字符串数组转换为ArrayList有什么好处?,android,autocompletetextview,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> a
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);
int-layoutItemId=android.R.layout.simple\u下拉菜单\u项目\u 1line;
字符串[]dogArr=getResources().getStringArray(R.array.dogs\u列表);
List dogList=Arrays.asList(dogsArr);
ArrayAdapter=新的ArrayAdapter(this、layoutItemId、dogList);
自动完成文本视图自动完成视图=
(AutoCompleteTextView)findViewById(R.id.AutoCompleteTView);
autocompleteView.setAdapter(适配器);
资料来源:
这部分的重点是什么:
List<String> dogList = Arrays.asList(dogsArr);
List dogList=Arrays.asList(dogsar);
当
AutoCompleteTextView
也使用字符串数组时,为什么要将其转换为ArrayList?当您只知道使用固定数量的元素时,应该使用数组。如果没有,请使用列表
我个人的意见是使用列表。列表使代码变得非常死板且易于使用。- 您可以在编译时初始化Java数组,如:
- 在旧版本的Java中,也存在类型安全问题。ArrayList元素必须强制转换为原始类型,而Java数组必须是类型安全的
- Java数组是该语言的一部分,您将无法更改它们。ArrayList是JavaAPI的一部分。如果您需要(但我不建议这样做),可以替换您自己的库来实现ArrayList作业
如果你有一个数组,它必须有一个固定的大小。动态添加和删除元素很难管理,每次添加新项时都必须创建新数组。类似地,用于删除项目 使用ArrayList很容易管理,因为它不是使用静态大小创建的。因此,在运行时,您可以轻松地添加和删除元素 ArrayList是此处使用的理想数据结构