List
List接口概述
List接口作为Collection接口的子接口,在继承Collection接口的方法同时,添加了一些字迹的方法。List接口在Java集合框架的使用中最为频繁。
List接口的实现类
List接口:存放有序可重复的数据,动态数组,替换原有的数组。
ArrayList:作为List接口的主要实现类,线程不安全,效率高,底层使用Object[] elementData 存储。
LinkedList:底层使用双链表存储,对于频繁的插入删除操作,效率高。
Vector:古老的List接口实现类,效率低,线程安全,底层使用Object[] elementData 存储。
List接口的常用方法(以ArrayList为例)
list接口的常用方法:
增:add(Object obj) boolean \addAll( int index ,Conllection eles)
删:remove(Object obj) \remove(int index) 默认调用索引
改:set(int index,OBject obj)
查:get(int index)
插:add(int index,Object obj)
长度:size()
public static void Test01(){
ArrayList arrayList = new ArrayList();
arrayList.add("lala");
arrayList.add("xoxo");
arrayList.add(123);
arrayList.add(456);
System.out.println(arrayList);
//void add(int index,Object obj) 在index的位置插入obj
arrayList.add(1,789);
System.out.println(arrayList);
//boolean addAll( int index ,Conllection eles)在index的位置插入集合eles的元素
List list = Arrays.asList("lala","qow");
arrayList.addAll(1,list);
// arrayList.add(list); 把集合当作整体加入到集合中
System.out.println(arrayList);
//OBject get(int index) 返回index位置的元素
System.out.println(arrayList.get(1));
//int indexof(Object obj)返回obj元素在集合中首次出现的位置
//int lastIndexof(object obj) 返回obj元素在集合中末次出现的位置
System.out.println(arrayList.lastIndexOf(456));
System.out.println(arrayList.indexOf("xixi") );
System.out.println(arrayList.remove("lala"));
System.out.println(arrayList);
}
public static void Test02(){
ArrayList arrayList = new ArrayList();
arrayList.add("lala");
arrayList.add("xoxo");
arrayList.add(123);
arrayList.add(456);
System.out.println(arrayList);
// Object remove(int index) 移除集合中指定位置的元素并返回该元素,也可以删除指定对象
System.out.println(arrayList.remove(1));
System.out.println(arrayList);
System.out.println(arrayList.size());
//oBject set(int index,Object obj)替换集合中第indexe位置的元素,并将替换的元素返回
System.out.println(arrayList.set(1,"EDG"));
System.out.println(arrayList);
//Object subList(int l,int w) 返回集合中位置l到w的子集合
System.out.println(arrayList.subList(0,3));
}
List接口的遍历方式
- Iterator 迭代器
- 增强 for循环
- for循环
public static void Test03(){
ArrayList arrayList = new ArrayList();
arrayList.add("lala");
arrayList.add("xoxo");
arrayList.add(123);
arrayList.add(456);
//方式一:迭代器
Iterator iterator = arrayList.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println("======================");
//方式二:增强for循环
for (Object obj:arrayList) {
System.out.println(obj);
}
System.out.println("=======================");
//方式三:for循环
for (int i=0;i<arrayList.size();i++){
System.out.println(arrayList.get(i));
}
}