List接口
List接口:存储有序的、可重复的数据
三个实现类:
- ArrayList
- LinkedList
- Vector
三者的异同:
- 同:三个类都是实现了List的接口,存储数据的特点相同,有序,可重复
- 异:
- ArrayList:作为List接口的主要实现类,线程不安全,效率高。底层使用Object【】存储
- LinkedList:底层使用双向链表存储,对于频繁地插入、删除操作,效率更高
- Vector:古老实现类,线程安全,效率低。底层使用Object【】存储
List接口中的常用方法:
- 增:add
- 删:remove(int index)/remove(Object obj)
- 改:set
- 查:get
- 长度:size
- 遍历:
- 迭代器Iterator
- 增强for循环
- 普通for循环
ArrayList
额外的方法
- list.add(1, "BB"),在指定索引出添加元素
- addALL,添加另一个List中的所有元素
- list.get(0),获取指定下标元素
- list.indexOf(456),返回存在元素的下标,不存在则返回-1
- list.remove(2),移除指定index位置的元素,并返回此元素
- list.set(1, "CC"),设置指定index位置的元素
- list.subList(2, 4),返回指定区间的list
list.add(1, "BB");
System.out.println(list);
System.out.println("**********");
//addALL
List list1 = Arrays.asList(1, 2, 3);
list.addAll(list1);
System.out.println(list1);
System.out.println(list.size());
System.out.println("**********");
//获取指定下标元素
System.out.println(list.get(0));
System.out.println(list.get(3));
//System.out.println(list.get(45));
System.out.println("**********");
//返回存在元素的下标不存在返回-1
int index = list.indexOf(456);
System.out.println(index);
index = list.indexOf(46546);
System.out.println(index);
//最后一次出现的元素
System.out.println(list.lastIndexOf(456));
System.out.println("**********");
//移除指定index位置的元素,并返回此元素
Object obj = list.remove(2);
System.out.println(obj);
System.out.println(list);
System.out.println("**********");
//设置指定index位置的元素
list.set(1, "CC");
System.out.println(list);
System.out.println("**********");
//返回指定区间的list
List sublist = list.subList(2, 4);
System.out.println(sublist);
System.out.println(list);