集合:集合是一个容器,可以存储多个数据,长度可变
集合根据存储结构可以分为两大类:单列集合和双列集合
单列集合:Collection接口中的子接口或者实现类
双列集合:Map接口中的集合
Collection 集合是所有单列集合的父接口,在Collection集合当中定义的所有单列集合的共性的API方法,适用于所有的集合
import java.util.ArrayList;
import java.util.Collection;
public class DemoCollection {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
//添加集合元素,返回值是boolean类型的
coll.add("小张");
coll.add("小王");
coll.add("小孙");
coll.add("小李");
boolean b1 = coll.add("小杨");
System.out.println(b1);
//移除集合元素,返回值是boolean类型的
boolean b2 = coll.remove("小王");
System.out.println(b2);
//判断集合元素是否为空
boolean empty = coll.isEmpty();
System.out.println(empty);
//判断集合是否包含指定元素
boolean b3 = coll.contains("小李");
System.out.println(b3);
//查看集合包含的元素个数
int size = coll.size();
System.out.println(size);
Object[] objects = coll.toArray();
for (int i = 0; i <objects.length ; i++) {
System.out.print(objects[i]+" ");
}
System.out.println("-------------");
//清空集合里的所有元素,暂时移除,内存中不做改变
coll.clear();
System.out.println(coll.size());
}
}
java.util.Iterator 包下的接口
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class DemoIterator {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("中国");
coll.add("美国");
coll.add("法国");
coll.add("英国");
//获取集合的迭代器,通过Iterator()方法获得集合的迭代器实现类对象
Iterator<String> iterator = coll.iterator();
//判断集合中是否有下一个元素,没有就会抛出异常
boolean it = iterator.hasNext();
System.out.println(it);//chakan一下是否有下个元素,有就是true
//如果返回true就取出下一个元素
String next = iterator.next();
System.out.println(next);
//由于上面的元素只能一个元素一个元素的取出,所以代码冗余性太高,
// 所以和while循环相结合取出集合中的元素比较方便
while(iterator.hasNext()){
String next1 = iterator.next();
System.out.println(next1);
}
}
}
在调用Interator接口当中的next方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next()方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回.
当再次调用next()方法时,迭代器的索引再次向后移动,直到hasNext方法返回false时,表示已经没有下一个元素啦,终止遍历,如果强制取出集合里的末尾不存在的元素,
就会抛出没有元素异常: java.util.NoSuchElementException
在jdk1.5之后出现了一个新的循环结构,for each 循环,一般也称为增强for循环,专门用来遍历数组和集合的,它的内部原理其实是有一个迭代器Iterator,在迭代过程中,不能对集合的增删改查操作.
for(元素的数据类型 变量名 : Collection集合或者数组){
//操作代码
}
//int[] static void main(String[] args){
int[] arr = {3,5,7,9,12};
//使用增强for循环遍历arr数组
for(int i : arr){
System.out.println(e);
}
}
#### 泛型
![](https://img2020.cnblogs.com/blog/2177909/202012/2177909-20201201165656928-219593291.png)
原文:https://www.cnblogs.com/renmiaomiao/p/14068286.html