2:集合(Collection)(掌握)
(1)集合的由来?
我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组
而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。
(2)集合和数组的区别?
A:长度区别
数组固定
集合可变
B:内容区别
数组可以是基本类型,也可以是引用类型
集合只能是引用类型(对象,集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象)
C:元素内容
数组只能存储同一种类型
集合可以存储不同类型(其实集合一般存储的也是同一种类型)
(3)集合的继承体系结构?
由于需求不同,Java就提供了不同的集合类。这多个集合类的数据结构不同,但是它们都是要提供存储和遍历功能的,
我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图。集合框架是不断向上抽取而得到的,为什么会出现这么多的容器呢?因为每一个容器对数据的出处方式都有不同。这个存储方式可以称之为:数据结构。每个容器数据结构不同
Collection
|--List
|--ArrayList
|--Vector
|--LinkedList
|--Set
|--HashSet
|--TreeSet
1.add方法的参数类型是Object,以便于接收任意类型对象。
2.结合中存储的都是对象的引用(地址)
import java.util.*;
class CollectionDemo
{
public static void main(String[] args)
{
base_method();
}
public static void base_method()
{
ArrayList al1 = new ArrayList();
//1.添加元素字符串对象
al1.add("java01");//addd(Object obj);
al1.add("java02");
al1.add("java03");
al1.add("java04");
ArrayList al2 = new ArrayList();
//1.添加元素字符串对象
al2.add("java01");//addd(Object obj);
al2.add("java02");
al2.add("java05");
al2.add("java06");
all.removeAll(al2);//相同元素会被删除
al1.retainAll(al2);//取交集,al1中只保留和a12中相同的元素
sop("al1"+al1);//取交集,al1结果是al1[java01, java02]
sop("al2"+al2);
}
public static void method()
{
//创建一个集合容器。使用collection接口的子类。ArrayList
ArrayList al = new ArrayList();
//1.添加元素字符串对象
al.add("java01");//addd(Object obj);
al.add("java02");
al.add("java03");
al.add("java04");
//打印原集合
sop("原集合"+al);
//al.clear();//清空集合
//3.删除元素
//al.remove("java02");
//4.判断元素
sop("java03是否存在:"+al.contains("java03"));
sop("集合是否为空?"+al.isEmpty());
//2.获取个数集合长度
sop("size:"+al.size());
//打印改变后的集合
sop(al);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
网友评论