Collection接口的子接口:list接口。
List接口的特点:
1.List集合中存放的元素是有序的(添加顺序与输出顺序一致),可重复。
2.List集合中的每个元素都有其对应的顺序,支持索引查找。与数组相同,索引从0开始
List接口的实现子类:ArrayList、LinkedList、Vector类
// 通过ArrayList实现子类讲解List接口特点
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("mary");
System.out.println(list); // [jack, tom, mary]
// 遍历list集合
for(int i = 0; i < 3; i++) {
// 通过get方法获取集合中对应位置的对象
// list集合是一个容器,每个元素都对应一个整数型序号记录元素在list中的位置,通过序号存取元素
System.out.println(list.get(i);
}
List接口中的方法:
add:void add(int index,Object ele),在索引为index的位置上添加ele元素
list.add(0, "kxg");
addAll:boolean addAll(int index, Collection eles),从index位置上开始,插入eles集合中所有元素
List list1 = new ArrayList();
list1.add(25);
list1.add(4);
list1.add(100);
list.addAll(2, list1);
list.add("kxg");
System.out.println(list); // [kxg, jack, 25, 4, 100, tom, mary, kxg]
get:Object get(int index):获取索引位置为index的元素
System.out.println(list.get(0)); // kxg
indexOf:int indexOf(Object obj) :获取元素obj在集合中第一次出现的位置
lastindexOf:int lastIndexOf(Object obj):获取元素obj在集合中最后一次出现的位置
System.out.println(list.indexOf("kxg")); // 0
System.out.println(list.lastIndexOf("kxg")); // 7
remove:Object remove(int index):删除指定位置上的元素,并返回此元素
list.remove(7);
System.out.println(list); // [kxg, jack, 25, 4, 100, tom, mary]
set:Object set(int index, Object ele):将集合中index位置上的元素修改为ele
注意:index不能越界(<=最大索引),否则会抛出异常
list.set(1, "杰克");
System.out.println(list); // [kxg, 杰克, 25, 4, 100, tom, mary]
// list.set(7, "jack"); // IndexOutOfBoundsException
sublist:List sublist(int fromIndex, int toIndex):返回索引从fromIndex到toIndex上的元素集合
注意:集合范围:fromList <= sublist < toList
List list2 = list.subList(2, 5);
System.out.println(list2); // [25, 4, 100]
遍历List集合:
实现Collection接口的实现类(ArrayList、LinkedList、Vector)都可以通过三种方式进行遍历
// 创建List集合(使用ArrayList类)
List list = new ArrayList();
list.add("jack");
list.add("tom");
list.add("smith);
list.add("mary");
一,使用Iterator迭代器进行遍历
Iterator(迭代器)是一个接口,作用:遍历容器中的所有元素。
Collection与Map系列用于盛装其他对象,而Iterator用于遍历(迭代访问)Collection中的元素
因此实现了Collection个接口的类都可以使用Iterator进行遍历
Iterator接口中的方法:
boolean hasNext():判断集合中是否存在下一个元素;如果有,返回true
Object next():返回集合中的下一个元素
void remove():删除集合中上一个next方法返回的元素
// 使用Iterator迭代器遍历集合
// 创建迭代器对象(使用list中的Iterator方法)
Iterator iterator = list.iterator();
// 判断list集合是否存在下一个元素
while(iterator.hasNext()) {
// 得到list集合中的每个元素
System.out.println(iterator.next());
}
二,使用for循环
list接口中存在get方法可以根据索引获取每个元素;size方法可以获得集合中的元素个数
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i);
}
三,增强for循环
for(Object o : list) {
System.out.println(o);
}