集合框架二:List

时间:2021-04-27 19:21:02
Collection类的子接口---List
位于:
java.util包下的
public interface List<E>extends Collection<E>
特点:List存储的特点:有序(存储和取出的元素一致)/可以重复的
允许多个 null 元素


一、List特有的成员方法:
1.void add(int index,Object element):在指定位置添加元素


2.Object get(int index);返回集合中指定的元素


3.ListIterator<E> listIterator(int index):List特有的迭代器
查看API 了解ListIterator 迭代器
其中有两个方法:
hasPrevious()
previous()
      和
hasNext();
next();方法进行比较
 
4.删除元素:
Object remove(int index):根据指定的索引删除元素,返回删除的元素

5.Object set(int index,Object element):根据索引修改元素,返回被修改的元素


6.返回集合中的元素个数:int size();


二、ConcurrentModificationException
表示:并发修改异常


集合中如果有kevin,就添加cidy


代码:
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("java");
list.add("kevin");


// 自己写的遍历集合的工具类,
ArrayDemo.arrCollection(list);


System.out.println("---------------------------");


// 解决方法一:使用普通for
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
if (s.equals("kevin")) {
list.add("cidy");
}
System.out.println(s);
}


// 解决方法二:
ListIterator<String> lt = list.listIterator();
while (lt.hasNext()) {
String s = lt.next();
if (s.equals("kevin")) {
//将指定的元素插入列表(可选操作)。
//该元素直接插入到 next 返回的下一个元素的前面(如果有),
//或者 previous 返回的下一个元素之后(如果有)
lt.add("cidy");//ListIterator 中有个add()方法,可以添加到
}


}
System.out.println(list);






自己写的工具类:
import java.util.Collection;
import java.util.Iterator;


public class ArrayDemo {
private ArrayDemo(){};

public static void arrCollection(Collection c){
Iterator<String> i = c.iterator();
while (i.hasNext()) {
String s = i.next();
System.out.println(s);
}
}
}