1.集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用
2.Collection集合的基本功能测试:Collection c=new ArrayList()
3.Collection集合的高级功能测试:
(1)boolean addAll(Collection c):添加一个集合的元素
(2)boolean removeAll(Collection c):移除一个集合的元素,只要有一个被移除了就返回true
(3)boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。只有包含所有的元素,才返回true
(4)boolean retainAll(Collection c):找出两个集合中相同的元素。返回的布尔类型表示调用这个方法的集合中的元素是否发生改变
改变了就返回true,没改变就返回false.
4.集合的遍历之集合转数组遍历:
(1):Object[] toArray():把集合转换成数组,可以实现集合的遍历
(2)代码:
Object[] objs=c.toArray();
for(int x=0;x<objs.length;x++){
//System.out.print(objs[x]+" ");
String s=(String)objs[x];
System.out.println(s+"------"+s.length());
}
5.Collection集合的遍历之迭代器遍历:
(1)Iterator iterator():迭代器,集合的专用遍历方式
(2)Object next():获取元素,并移动到下一个位置
(3)boolean hasNext():如果仍有元素可以迭代,则返回true
(4)代码:
Iterator it=c.iterator();
while(it.hasNext()){
//System.out.println(it.next());
String s=(String)it.next();
System.out.println(s);
}
6.迭代器使用问题的探讨:不要多次使用it.next()方法,因为每次使用都是访问一个对象
7.List集合特有的功能概述和测试:
(1)添加功能:void add(int index,Object element)
(2)获取功能:Object get(int index)
(3)列表迭代器:ListIterator listIterator():List集合特有的迭代器
(4)删除功能:Object remove(int index):根据索引删除元素,返回被删除的元素(还有别的方法,不只这一个)
(5)修改功能:Object set(int index,Object element):根据索引修改元素,返回被修改的元素
8.List集合的特有遍历功能:
(1)直接for循环
for(int x=0;x<list.size();x++){
String s=(String)list.get(x);
System.out.print(s+" ");
}
9.ListIterator的特有功能:
(1)ListIterator listIterator():List集合特有的迭代器(当然也有Collection的迭代器)
该迭代器继承了Iterator迭代器,所以就可以直接使用hasNext()和next()方法
(2)特有功能:
Object previous():获取上一个元素
boolean hasPrevious():判断是否有元素
*ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用。
10.并发修改异常的产生原因及解决方法:
(1)ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常
(2)产生的原因:迭代器是依赖于集合而存在的,在判断成功后,集合中新添加了元素,而迭代器却不知道,所以就报错,这个错叫并发修改异常
(3)如何解决:A:迭代器迭代元素,迭代器修改元素
而Iterator迭代器没有添加功能,所以我们使用其子接口ListIterator
代码:
List list=new ArrayList();
list.add("hello");
list.add("world");
list.add("java");
ListIterator lit=list.listIterator();
while(lit.hasNext()){
String s=(String)lit.next();
if("world".equals(s)){
lit.add("javaee");
}
}
System.out.println(list);
* 结果:[hello, world, javaee, java]
11.B:集合遍历元素,集合修改元素(普通for循环)
代码
List list=new ArrayList();
list.add("hello");
list.add("world");
list.add("java");
for(int x=0;x<list.size();x++){
String s=(String)list.get(x);
if("world".equals(s)){
list.add("javaee");
}
}
System.out.println(list);
结果:[hello, world, java, javaee]