1.在List和Set接口中,他们都有一个add()方法,但是对于去这两个方法其里面的写法是有区别的。对于List来说,它的add()方法返回值一定是真,而对于Set来说,它的返回值就不一定是真的。这就是这两个接口的区别。因为List接口是允许存储相同元素的,而Set接口是不允许存储相同元素的。
2.java中的集合经常会出现的一个问题是并发修改异常,这个意思指的是不允许在使用iterator在对集合迭代过程中对集合的长度进行修改,但是Listiterator对集合迭代的过程中就可以对集合的长度进行修改。
public static void listdemo(){
LinkedList<String> link=new LinkedList<String>();
link.add("abc");
link.add("bcd");
link.add("cde");
Iterator<String> it=link.iterator();
while(it.hasNext()){
String s=it.next();
//以下代码就是在用iterator对集合迭代时修改集合的长度
//这是错误的!!!!!
/*
if(s.equals("abc")){
link.add("JAVA");
}
*/
System.out.println(s);
}
System.out.println("======================");
//以下是利用Listitrator对集合进行迭代时修改集合的长度,这是可以的
ListIterator<String> lit=link.listIterator();
while(lit.hasNext()){
String s=lit.next();
if(s.equals("abc")){
//lit.set("JAVA");这是对集合当前索引位置上的元素修改
lit.add("HELLO");
}
System.out.println(s);
}
}