这三种方法有什么区别?

时间:2018-02-04 14:29:01

标签: java

String[] things = {"hello", "plastic", "eggs"};
List<String> list1 = new ArrayList<String>();

//Add datas to my list type1
for (int i = 0; i < things.length; i++) {
    list1.add(things[i]);
}
//Add my data to my list type2
for (String s : things) {
    list1.add(s);
}
//Add my data to my list type3
list1.addAll(Arrays.asList(things));

2 个答案:

答案 0 :(得分:1)

他们都做同样的事情,但复杂程度各不相同

  1. 第一个是大多数本地人并使用索引
  2. 第二个在foreach循环样式中使用字符串迭代器
  3. 第三个使用每种方法添加
  4. 需要注意的是,像android_sdk&lt; 20

    这样的较低版本的java可能不支持像第3版这样的高级方法

答案 1 :(得分:1)

for (int i = 0; i < things.length; i++) {
    list1.add(things[i]);
}

这是for loop,只要条件(i < things.length)成立,它就会执行。

//Add my data to my list type2
for (String s : things) {
    list1.add(s);
}

这是一个for-each循环。它与for loop的不同之处在于您不需要指定要执行循环的条件。它为things数组中的每个项目执行一次。

//Add my data to my list type3
list1.addAll(Arrays.asList(things));

在此方法中,使用Arrays类。 asList类的Arrays方法返回由指定数组支持的列表,在您的情况下,该数组为things。然后,asList方法返回的列表中的每个项目都会使用list1方法添加到addAll

基本上,他们都做同样的事情,即在things arraylist中添加list1数组的所有项目。