1 什么是集合
1.1 集合的介绍
集合实际上就是一个容器,可以用来容纳其他类型的数据,数组相当于一个最简单的集合
集合在java中本身就是一个容器,是一个对象,是一个引用数据类型
集合容器中存储的其实是每个对象的内存地址,每个内存地址指向各自的对象
集合里面可以套集合
java中每一个不同的集合,底层都会对应不同的数据结构,往不同的集合中存储元素,等于将数据放到了不同的数据结构中,数据结构 就是数据存储的结构,不同的数据结构,数据存储方式不同
例如:数组,二叉树,链表,哈希表
所有的集合都是可迭代的,可遍历的
1.2 集合的分类
java中集合分为两大类:
一类是单个方式存储元素(对象)
以单个方式存储元素,这一类的集合中超级父接口:java.util.Collection
一类是以键值对的方式存储元素(对象)
以单个方式存储元素,这一类的集合中超级父接口:java.util.Map
在java中,数据结构已经写好了常用的工具类Collections
需要掌握怎么用,在合适的情况下选择合适的集合
new不同的对象,会创建一个底层数据结构不同的集合
所有的集合类和集合接口,都在java.util.*下边
Map下的集合不能使用Collections工具类
2 Collection
2.1 Collection中能存放什么元素
没有使用泛型之前,Collection中可以存储Object的所有子类型
使用泛型之后,Collection中只能存储某个具体的类型
2.2 Collection中常用的方法
boolean add(Object e) 向集合中添加元素
//创建一个集合对象
//Collection collection = new Collection(); 接口是抽象的,无法实例化
//多态
Collection c = new ArrayList();
c.add(1200);//自动装箱
c.add(3.14);//自动装箱
c.add(new Object());
c.add(new Student());
c.add(true);//自动装箱
int size() 获取集合中元素的个数
//获取集合中元素的个数
System.out.println("集合中元素个数为:"+c.size());
void clear() 清空集合
//清空集合
c.clear();
System.out.println("集合中元素个数为:"+c.size());//0
boolean contains(Object o) 判断当前集合中是否包含元素o,包含返回true,不包含返回false
c.add("hello");
c.add("world");
//判断集合中是否包含hello
boolean b = c.contains("hello");
System.out.println(b);//true
void remove() 删除集合中某个元素
//删除集合中某个元素
c.remove("hello");
System.out.println(c.contains("hello"));//false
boolean isEmpty() 判断集合是否为空
//判断集合是否为空
System.out.println(c.isEmpty());//false
c.clear();
System.out.println(c.isEmpty());//true
Object[] toArray() 将集合转换为数组 [作为了解,使用不多]
//将集合转换为数组
Object[] objects = c.toArray();
System.out.println(Arrays.toString(objects));//[world]
boolean retainAll() 保留指定集合中的元素
2.3 关于Collection遍历/迭代专题
Iterator迭代器,只能在所有的Collection及其子类中使用,Map集合下不能用,因为Collection继承了Iterable接口
public interface Collection<E> extends Iterable<E>
//如下的遍历方式/迭代方式,是所有Collection通用的一种方式
//创建集合对象
Collection c = new ArrayList();//
//添加元素
c.add("hello"