Collection集合
一、Collection集合之间的关系图
二、Collection集合常用的功能
java.util.Collection接口
所有单列集合的顶层的接口,定义了所有单列集合的共性的方法
任意的单列集合都可以使用Collection接口中的方法
共性的方法:
public boolean add(E e):把给定的对象添加到当前的集合中
public void clear():清空集合中的所有元素
public boolean remove(E e):把给定的对象在当前集合中删除
public boolean contains(E e):判断当前集合是否包含给定的对象
public boolean isEmpty():判断当前集合是否为空
public int size():返回集合中元素的个数
public object[] toArray():把集合中的元素存储到数组中
import java.util.ArrayList;
import java.util.Collection;
public class Demo01Collection {
public static void main(String[] args) {
//创建集合对象,可以使用多态
Collection<String> coll = new ArrayList<String>();
System.out.println(coll); //重写了toString方法
/*
(1)public boolean add(E e):把给定的对象添加到当前的集合中
注意:返回值是一个boolean值,一般都返回true,所以可以不用接收值
*/
coll.add("张三");
coll.add("李四");
coll.add("王五");
coll.add("赵六");
coll.add("田七");
System.out.println("(1)添加元素:"+coll); //[张三, 李四, 王五, 赵六, 田七]
/*
(2)public boolean remove(E e):把给定的对象在当前集合中删除
注意:如果删除元素在集合中,则返回true;
如果删除的元素不在集合中,则返回false.
*/
boolean b1 = coll.remove("田七");
boolean b2 = coll.remove("赵四");
System.out.println("(2.1)删除元素:"+b1); //true
System.out.println("(2.2)删除元素:"+b2); //false
/*
(3) public boolean contains(E e):判断当前集合是否包含给定的对象
注意:如果包含给定的对象,则返回true
如果不包含给定的对象,则返回false
*/
boolean b3 = coll.contains("张三");
boolean b4 = coll.contains("赵四");
System.out.println("(3.1)包含给定的对象:"+b3); //true
System.out.println("(3.2)包含给定的对象:"+b4); //false
/*
(4)public boolean isEmpty():判断当前集合是否为空
注意:如果当前集合为空,则返回true
如果当前集合为不空,则返回false
*/
boolean b5 = coll.isEmpty();
System.out.println("(4)是否为空:"+b5); //false
/*
(5)public int size():返回集合中元素的个数
*/
System.out.println("(5)集合中元素的个数:"+coll.size()); //4
/*
(6)public object[] toArray():把集合中的元素存储到数组中
*/
Object[] objects = coll.toArray();
System.out.print("(6)把集合中的元素存储到数组中:");
for (int i = 0; i < objects.length; i++) {
System.out.print(objects[i]+" ");
}
System.out.println();
/*
(7) public void clear():清空集合中的所有元素
注意:只是清空集合中的元素,集合仍然存在
*/
coll.clear();
System.out.println("(7)清空集合:"+coll);
}
}
三、Iterator迭代器
作用:获取集合中的元素,对集合进行遍历
java.util.Iterator接口:迭代器(对集合进行遍历)
有两个常用的方法:
boolean hasNext():判断集合中是否有下一个元素,如果有则返回true,没有则返回false
E next():返回迭代的下一个元素
Iterator迭代器,是一个接口,无法直接使用,需要使用Iterator接口的实现类对象
Collection有一个方法iterator(),该方法返回的是迭代器的实现类对象
Iterator<E> iterator:返回此collection的元素上进行的迭代器
迭代器的使用步骤:
1.使用集合中的方法iterator()获取迭代器中实现类对象,使用Iterator接口来接收
注意:Iterator<>中的泛型与Collection<>的泛型需要保持一致性
2.使用Iterator中的方法hasNext()判断是否有下一个元素
3.使用Iterator中的方法next()取出集合中的下一个元素
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01Iterator {
public static void main(String[] args) {
//创建集合对象,并向集合中添加元素
Collection<String> coll = new ArrayList<String>();
coll.add("张三");
coll.add("李四");
coll.add("王五");
coll.add("赵六");
coll.add("田七");
//获取迭代器
Iterator<String> it = coll.iterator();
//判断是否有下一个元素
System.out.print("遍历集合中的元素:");
while (it.hasNext()){
String next = it.next();
System.out.print(next+" ");
}
}
}
四、使用增强for循环
原理:底层结构是Iterator迭代器,可以简化Iterator迭代器
格式:for(数组/集合 变量名:数组名/集合名){}
注意:增强for循环只能对集合或数组进行遍历
import java.util.ArrayList;
import java.util.Collection;
public class Demo02Foreach {
public static void main(String[] args) {
demo01();
demo02();
}
//使用增强for循环遍历集合
private static void demo02() {
Collection<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (int i : list){
System.out.println(i);
}
}
//使用增强for遍历数组
private static void demo01() {
int[] arr = {1,2,3,4,5};
for (int a : arr){
System.out.println(a);
}
}
}