【问题标题】:How can I convert String[] to ArrayList<String> [duplicate]如何将 String[] 转换为 ArrayList<String> [重复]
【发布时间】:2012-05-01 03:15:46
【问题描述】:

可能重复:
Assigning an array to an ArrayList in Java

我需要将String[] 转换为ArrayList&lt;String&gt;,但我不知道如何

File dir = new File(Environment.getExternalStorageDirectory() + "/dir/");
String[] filesOrig = dir.list();

基本上我想将filesOrig 转换为ArrayList

【问题讨论】:

标签: java android string arraylist


【解决方案1】:

您可以循环所有数组并添加到 ArrayList 中:

ArrayList<String> files = new ArrayList<String>(filesOrig.length);
for(String file: filesOrig) {
    files.add(file);
}

或使用Arrays.asList(T... a) 做评论发布。

【讨论】:

  • ...new ArrayList&lt;String&gt;(filesOrig.length); 防止后备数组的大小必须增加。可能更快。
【解决方案2】:

像这样:

String[] words = {"000", "aaa", "bbb", "ccc", "ddd"};
List<String> wordList = new ArrayList<String>(Arrays.asList(words));

List myList = new ArrayList();
String[] words = {"000", "aaa", "bbb", "ccc", "ddd"};
Collections.addAll(myList, words);

【讨论】:

  • 谢谢.. 我不能使用Arrays.asList,因为我必须稍后将元素添加到列表中。 addAll 完美运行 :)
  • 第二个选项有效
【解决方案3】:
List<String> list = Arrays.asList(array);

返回的列表将由数组支持,它就像一座桥梁,所以它是固定大小的。

【讨论】:

  • 这个答案是错误的,甚至不会编译。
  • @suriv:唯一的问题是List 而不是ArrayList,但答案没有错。并非总是需要将数组的副本创建到ArrayList,有时您只需将数组视为列表即可。请注意,创建一个真实的副本,如new ArrayList&lt;&gt;(Arrays.asList(array)) 需要为列表的每个元素存储一个内存。例如,一个 100000 Object 数组需要 800kb 的 RAM,仅用于指向引用的指针。
  • 为了未来读者的利益,尝试在此列表中添加或删除元素将引发异常。
  • @suriv:答案中已明确说明,文档中已明确说明,无论如何感谢您的澄清。
【解决方案4】:
List myList = new ArrayList();
Collections.addAll(myList, filesOrig); 

【讨论】:

    【解决方案5】:

    你可以这样做

    MyClass[] arr = myList.toArray(new MyClass[myList.size()]);

    【讨论】:

      【解决方案6】:

      您可以执行以下操作:

      String [] strings = new String [] {"1", "2" };
      List<String> stringList = new ArrayList<String>(Arrays.asList(strings)); //new ArrayList is only needed if you absolutely need an ArrayList
      

      【讨论】:

      • 谢谢,我用的是这个
      • 我不相信您可以更改此列表。 stringList.remove(1) 肯定不适合我。
      猜你喜欢
      • 2015-07-20
      • 2014-01-09
      • 2012-08-31
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2012-11-26
      相关资源
      最近更新 更多