Java 这三种方法的区别是什么? String[]things={“你好”、“塑料”、“鸡蛋”}; List list1=新的ArrayList(); //将数据添加到我的列表类型1 for(int i=0;i
它们都做相同的事情,但复杂程度不同Java 这三种方法的区别是什么? String[]things={“你好”、“塑料”、“鸡蛋”}; List list1=新的ArrayList(); //将数据添加到我的列表类型1 for(int i=0;i,java,Java,它们都做相同的事情,但复杂程度不同 第一个是最原生的,使用索引 第二个使用foreach循环样式的字符串迭代器 第三个使用eachmethod样式的加法 需要注意的是,像3rd one这样的高级方法在较低版本的java(如android_sdk)中可能不受支持 这是每个循环的。它与循环的不同之处在于,在执行循环之前,不需要指定条件。它对things数组中的每个项执行一次 //Add my data to my list type2 for (String s : things) { li
。它与循环的不同之处在于,在执行循环之前,不需要指定条件。它对things
数组中的每个项执行一次
//Add my data to my list type2
for (String s : things) {
list1.add(s);
}
在这个方法中,使用了数组
类asList
method ofArrays
类返回一个由指定数组支持的列表,在您的例子中,该数组就是things
。然后使用addAll
方法将asList
方法返回的列表中的每个项目添加到list1
基本上,它们都做相同的事情,即在list1
arraylist中添加事物
数组的所有项。在哪些方面有区别?从功能上讲,它们都实现了相同的功能。真的吗?3(2)创建迭代器对象。(3) 创建一个数组包装器对象,在添加之前,基础数组由addAll
克隆,因此效率相对较低。(1) 看起来效率最高,但我认为现代编译器能够在引擎盖下将(2)转换为(1)。在(3)中,数组列表容量只增加一次,因为目标大小是立即知道的。TL;DR:效率取决于所添加阵列的大小。
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));