任何复杂的知识往往给人的感觉都是那么的不友好,所以,一定要静下心来,耐心去看、去读、去理解这些东西!!!
1.为什么要学习集合?
我们都知道,在 Java 语言中,数组可以保存多个对象,但是如果在无法确定需要保存多少个对象的时候,数组将不再适用,因为数组的长度是不可变的。
例如,要保存一个学校的学生信息,由于不停的有新生来报道,同时也会有学生毕业离开学校,这个时候学生的数目无法固定,并且随时可能变动。为了保存这些数目不确定的对象,Java 语言中提供了集合,集合可以存储任意类型的对象,并且长度可变。
定义:Java 中的集合就像一个容器,专门用来存储 Java 对象。
说明:集合对象可以是任意数据类型,并且长度可变。
注意:这些集合都位于 java.util 包中,在使用集合的时候,一定要注意导包的问题。
2.集合的分类
对于上面这张图,在集合中,Collection、List、Set和Map都是接口,其中 List 接口和 Set 接口继承了 Collection 接口。而剩下的都是实现类。
3.Collection接口的常用方法
4.应用举例
import java.util.*; /*import java.util.Collection; import java.util.ArrayList; import java.util.Iterator;*/ public class CollectionDemo { public static void main(String[] args) { Collection<String> collection=new ArrayList<String>(); //创建一个集合collection,通过ArrayList类去实现Collection接口中的方法 //尖括号<>表示的是泛型,在这里限定操作的数据类型为String Collection<String> inter=new ArrayList<String>(); System.out.println("↓↓↓Collection集合常用方法如下↓↓↓"); System.out.println("---------------------------------------------"); System.out.println("创建第一个空的Collection集合,元素类型为String类:" + collection); System.out.println("创建第二个空的Collection集合,元素类型为String类:" + inter); System.out.println("---------------------------------------------"); collection.add("C"); collection.add("C++"); collection.add("Java"); collection.add("Python"); inter.add("ABCD"); inter.addAll(collection); System.out.println("向collection集合中添加4个元素:" + collection); System.out.println("向inter集合中添加一个元素:" + inter); System.out.println("将collection集合中的所有元素添加到inter集合中:" + inter); System.out.println("---------------------------------------------"); inter.removeAll(collection); System.out.println("将inter集合中包含collection集合中的所有元素删除:" + inter); collection.remove("C++"); System.out.println("将collection集合中的元素\"C++\"移除:" + collection); System.out.println("---------------------------------------------"); System.out.println("collection集合中是否包含元素\"Java\":" + collection.contains("Java")); System.out.println("inter集合中是否包含collection集合中的所有元素:" + inter.containsAll(collection)); System.out.println("---------------------------------------------"); System.out.println("此时collection集合的元素个数为:" + collection.size()); System.out.println("---------------------------------------------"); System.out.println("此时collection集合是否为空:" + collection.isEmpty()); System.out.println("---------------------------------------------"); Object[] obj=collection.toArray(); System.out.print("将collection集合转为数组,并将元素存入数组中:"); for(Object a : obj) { System.out.print(a + " "); } System.out.println(); System.out.println("---------------------------------------------"); collection.clear(); System.out.println("清空collection集合中的所有元素:" + collection); System.out.println("---------------------------------------------"); //第一步:使用集合中的iterator()方法,获取送代器的实现类对象 //第二步:使用Iterator接口接收(多态) Iterator<String> stringiterator=inter.iterator(); while(stringiterator.hasNext()) { /*第三步:使用Iterator接口中的hasNext()方法来判断集合中还有没有下一个元素 如果有下一个元素,那么就调用Iterator接口的next()方法,取出下一个元素,并且会把指针向后移一位 第四步:使用Iterator接口中的next()方法来取出集合中的下一个元素 以此类推,直到hasNext()方法返回false,表示到达了集合的末尾终止对元素的遍历*/ System.out.print(stringiterator.next()); } } }