当数据多需要存储,需要容器且数据的个数不确定,无法使用数组,这时可以使用Java中的另一个容器——集合。
集合与数组的区别:
数组的长度是固定的,集合的长度是可变的。
数组存储同一类型的元素,可以存储基本数据类型值, 集合存储的都是对象,且对象的类型可以不一致。
什么时候使用集合,怎样区分集合容器
当对象多的时候需要先进行存储。每个容器的数据结构(数据存储的一种方式)不一样。
学习体系:看顶层,用底层
Collection接口
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
public static void main(String[] args) {
Collection coll= new ArrayList();
//collectionDemo1(coll);
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
collectionDemo2( c1, c2);
}
/**
*
* collectionDemo
* @Title: collectionDemo
* @Description: collection接口中的普通方法
* @param @param coll
* @return void
* @throws
*/
private static void collectionDemo1(Collection coll) {
//往集合中添加元素
coll.add("Tom1");
coll.add("Tom2");
coll.add("Tom3");
//打印集合
System.out.println(coll);//打印结果 [Tom1, Tom2, Tom3]
//删除集合
//coll.remove("Tom1");
//System.out.println(coll);//打印结果[Tom2, Tom3]
//判断是否包含
System.out.println(coll.contains("Tom2"));//打印结果true
//是否为空
System.out.println(coll.isEmpty());//打印结果false
//清除
coll.clear();
System.out.println(coll);//打印结果为空
}
/**
*
* collectionDemo2
* @Title: collectionDemo2
* @Description: collection方法中带All的方法
* @param @param c1
* @param @param c2
* @return void
* @throws
*/
private static void collectionDemo2(Collection c1,Collection c2) {
//给两个集合添加元素
c1.add("Tom1");
c1.add("Tom2");
c1.add("Tom3");
c2.add("Tom2");
c2.add("Tom5");
c2.add("Tom6");
//添加所有c2的元素到c1中
c1.addAll(c2);
//c1中是否包含c2中的所有元素
boolean b = c1.containsAll(c2);
System.out.println(b);//打印结果为true
// //删除c1中所有和c2相同的元素
// c1.removeAll(c2);
// System.out.println(c1);
//保留c1和c2中相同的元素
c1.retainAll(c2);
System.out.println(c1);
}
}