package test09;
import java.util.ArrayList;
import java.util.Collection;
public class Demo18_集合框架 {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
// TODO Auto-generated method stub
/*需求1:20个学生 用student描述 创建student对象
* 既然对象很多先进行存储----创建数组
* Student[] stus = new Student[20];
*
* 需求2:又来了一个新学员
* 数组长度固定,原来的容器不能使用
*
* 解决方式: 创建一个新数组,将原来的数组复制到新数组中
* 过于复杂; Java中提供了解决问题的对象----->集合
*
* 数据多了需要 存储,需要容器,而数据的个数不确定,无法使用数组,所以使用Java中的另一个容器--集合
*
* 集合和数组的区别?
* 数组的长度是固定的
* 集合的长度是可变的
*
* 数组中存储的都是同一类型的元素,可以存储数据类型值
* 集合存储的都是对象,而对象的类型可以不一致
*
* 什么时候使用?
* 当对象多的时候,先进行存储
* Java最早版本1.0中,提供的容器很少
* 1.2之后为了更多的需求,出现了集合框架。有了更多的容器
* 完成了不同的需求
*
* 这些容器怎么区分呢
* 区分方式:没一个容器的数据结构(数据存储的一种方式)不同
*
* 在不断向上的抽取过程中出现体现,形成了集合框架
* 最顶层:collection接口 定义了集合体系中最共性的功能
* 学习体系: 看顶层,用底层
*
* 了解顶层collection
* 容器功能:添加 删除
* */
Collection coll = new ArrayList() ;// 多态 向上转型 提高扩展性隐藏子类型 目前演示collection的方法,不关心子类的对象
collectionDemo(coll);
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
collectionDemo2(c1,c2);
}
// 演示collection中的带all的方法
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void collectionDemo2(Collection c1,Collection c2){
System.out.println("-------往两个集合中添加元素-------");
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c2.add("abc1");
c2.add("abc5");
c2.add("abc6");
System.out.println(c1);
System.out.println(c2);
System.out.println("-------添加所有c2的元素到c1中-------");
c1.addAll(c2);
System.out.println(c1);
System.out.println(c2);
System.out.println("-------包含问题-------");
boolean b = c1.containsAll(c2);//指c2中的每一个元素都包含在c1中
System.out.println("b="+b);//true 因为这时候已经将c2的元素到c1中
System.out.println("-------删除所有元素-------");
c1.removeAll(c2);//删除c1中所有的与c2相同的元素
System.out.println(c1);
c1.retainAll(c2);//保留了c1中与c2相同的元素
}
//演示collection中的一般方法
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void collectionDemo(Collection coll) {
System.out.println("-------往集合中添加元素add(Object)-------");
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
System.out.println(coll);//[abc1, abc2, abc3]
System.out.println("-------删除元素-------");
coll.remove("abc1");
System.out.println(coll);
System.out.println("-------判断是否包含-------");
System.out.println(coll.contains("abc2"));
System.out.println("-------集合元素个数-------");
int a = coll.size();
System.out.println(a);
}
}
Demo18_集合框架
猜你喜欢
转载自blog.csdn.net/mingxu_W/article/details/81978091
今日推荐
周排行