List子接口与其对应的实现类

List子接口对应三个实现类:主要使用的是ArrayList,线程不安全效率高,LinkedList底层使用的是双向链表,对于频繁插入数据的可以优先使用

常用的方法:增 删 改 查 插 长度 遍历 与Collection接口的方法差不多

 

 1 /**
 2  * Collection子接口之List接口:
 3  * List子接口有3个实现类:ArrayList,LinkedList,Vector
 4  * 1:ArrayList实现类:
 5  * 三者的异同:
 6  * 相同:三个类都是实现了List接口,存储数据的特点相同,存储有序的可重复的数据
 7  * 不同:ArrayList作为List接口的主要实现类,其他两个比较少使用
 8  * ArrayList是线程不安全的,效率高,底层使用Object[]存储
 9  * LinkedList底层使用双向链表存储,对于频繁的插入删除操作优先使用LinkedList
10  * ************************
11  * ArrayList源码分析:
12  * 常用方法:
13  * 增:add()/addAll(int )
14  * 删:remove()
15  * 改:set()
16  * 查:get()
17  * 插:add(int index,Object o)
18  * 长度:size()
19  * 遍历:1:迭代器Iterator 2:增强for循环 3:普通循环
20  *
21  */
22 public class ListTest {
23     @Test
24     public void test() {
25         ArrayList arrayList = new ArrayList();//创建对象实际上是创建了初始长度为10的数组Object[]elementDate
26         //如果长度不够,扩容1.5倍,
27         ArrayList arrayList2 = new ArrayList(20);//开发中建议使用带参数构造器自己设置长度
28         arrayList.add(123);
29         arrayList.add("hpp");
30         System.out.println(arrayList);
31         LinkedList linkedList=new LinkedList();
32         linkedList.add("hpp");
33         linkedList.add(123);
34         linkedList.add(LocalDateTime.now());
35         linkedList.add(new ArrayList());
36         linkedList.add(2,132612);//add插入操作
37         linkedList.addAll(2,arrayList);
38         linkedList.add(111);
39         linkedList.remove(2);//remove删除操作
40         System.out.println(linkedList.get(2));
41         System.out.println(linkedList.indexOf(111));
42         linkedList.remove("hpp");
43         linkedList.set(0,666);//设置值
44         System.out.println(linkedList);
45         System.out.println(linkedList.size());//长度size()
46         //迭代器进行遍历
47         Iterator iterator=linkedList.iterator();
48         while (iterator.hasNext()){
49             System.out.println(iterator.next());
50         }
51         //增强for循环进行遍历
52         for (Object obj:linkedList){
53             System.out.println(obj);
54         }
55         //普通for循环遍历
56         for (int i = 0; i < linkedList.size(); i++) {
57             System.out.println(linkedList.get(i));
58         }
59     }
60 }

 

上一篇:查找 整数


下一篇:java容器