Arraylist:底层是数组实现,是长度可变的动态数组,观察源码可发现当创建一个ArrayList对象时,其实就相当于new了一个长度为10的Object类型的数组,当加入新的元素的时候,数组长度变为:原来长度*3/2+1,ArrayList中元素有序、通过角标操作,从0开始,ArrayList遍历元素和随机访问元素的效率比较高(角标),插入、删除等操作频繁时性能低下。常用方法包括:size(集合长度)、add(添加元素)、get(通过角标获得元素)、set(给指定角标添加元素)、remove(删除元素)
源代码:
1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 5 public class ListDemo { 6 public static void main(String[] args) { 7 List<String> list=new ArrayList<>(); 8 list.add("java"); 9 list.add("linux"); 10 list.add("hadoop"); 11 list.add("hive"); 12 list.add(1,"mysql"); 13 System.out.println(list.size()); 14 for (int i=0;i<list.size();i++){ 15 System.out.print(list.get(i)); 16 } 17 for (String str: list) { 18 System.out.println(str); 19 } 20 Iterator it=list.iterator(); 21 while (it.hasNext()){ 22 String next=(String) it.next(); 23 if(next.equals("mysql")){ 24 next="hbase"; 25 } 26 System.out.println(next+" "); 27 } 28 } 29 }
迭代器的使用:
1 Iterator it=list.iterator(); 2 while (it.hasNext()){ 3 String next=(String) it.next(); 4 if(next.equals("mysql")){ 5 next="hbase"; 6 } 7 System.out.println(next+" "); 8 }
foreach的使用:
for (String str: list) { System.out.println(str); }