一、类继承关系
二、接口功能概述
Iterable接口包含的方法如下,实现该接口,则可以用for循环的方式遍历集合。
for循环遍历的核心在iterator()方法返回的迭代器Iterator,spliterator()方法返回的Spliterator用于并行流中将一个计算任务拆分成多个并行任务。Iterator接口包含的方法如下:
Iterator接口主要用于取代低版本的Enumeration接口来遍历集合元素,相比原来的Enumeration接口增加了对删除元素的支持,并优化了接口方法的命名,注意remove()方法是删除上一次调用next()方法返回的元素,并且只能调用一次,重复调用会抛出IllegalStateException异常,参考如下用例:
@Test
public void test10() throws Exception {
Set<String> set=new HashSet<>();
set.add("test");
set.add("test2");
set.add("test3");
set.add("test4");
set.add("test5");
Iterator<String> iterator=set.iterator();
while (iterator.hasNext()){
String curr=iterator.next();
System.out.println(curr);
if(curr.equals("test")){
iterator.remove();
iterator.remove();
}
}
}
Collection接口是集合类接口的根接口,包含的方法如下:
注意toArray()返回的是Object[],不能强转成T[],只能在Object[]遍历时将Object强转成目标类型的元素。toArray(T[]) 方法的入参是一个目标类型的数组,如果集合中元素的个数大于入参数组的长度则返回一个新数组,否则将集合中的元素添加到入参数组中并返回。removeAll()方法和retainAll()方法是相反的,前者是删除所有在特定集合中的元素,后者是只保留在特定集合中的元素。参考如下测试用例:
@Test
public void test2() throws Exception {
Set<String> set=new HashSet<>();
set.add("test");
set.add("test21");
set