集合概述
- 集合到底是什么呢?集合:集合是java中提供的一种容器,可以用来存储多个数据
集合和数组既然都是容器,它们有啥区别呢?
区别1:
- 数组的长度是固定的。
- 集合的长度是可变的。
区别2:
- 数组中存储的是同一类型的元素,可以存储基本数据类型值,也可以存储引用类型:
- 集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。
学习集合的目标
- 会使用集合存储数据
- 会遍历集合,把数据取出来
- 掌握每种集合的特性
学习集合的方式
- 学习顶层:学习顶层接口或者抽象类中共性方法,所有的子类都可以使用
- 使用底层:顶层不是接口就是抽象类,无法直接使用,我们需要使用底层的子类来创建对象使用
集合框架
在使用JAVASE提供的API前,了解其继承与接口操作架构,才能知道何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection:定义了所有单列集合的共性方法。双列集合java.util.Map:定义了所有双列集合的共性方法。JDK中提供了丰富的集合类库,为了便于初学者进行系统地学习,接下来通过一张图来描述整个集合类的继承体系。
注意事项:
- 上图橙色框里填写的都是接口类型,而蓝色框里填写的都是具体的实现类
- 集合本身是一个工具,它存放在java.util包中。在 Collection 接口定义着单列集合框架中最最共性的内容。
单列集合的体系结构图
我们先看下图大概了解一下单列集合的结构体系,下面我们来详细学习
Collection 常用功能
Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下
- public boolean add(E e) : 把给定的对象添加到当前集合中 。
- public void clear() :清空集合中所有的元素。
- public boolean remove(E e) : 把给定的对象在当前集合中删除。
- public boolean contains(E e) : 判断当前集合中是否包含给定的对象。
- public boolean isEmpty() : 判断当前集合是否为空。
- public int size() : 返回集合中元素的个数。
- public Object[] toArray() : 把集合中的元素,存储到数组中
代码举例
public class CollectionTest { public static void main(String[] args) { //多态:创建集合类对象 Collection<String> collection = new ArrayList<>(); //打印对象名称,得到的不是对象的内存地址值,ArrayList类重写了toString方法 System.out.println(collection);//[] // public boolean add(E e): 把给定的对象添加到当前集合中 。返回值是一个boolean值,一般都返回true,所以可以不用接收 collection.add("早餐"); collection.add("中餐"); collection.add("晚餐"); collection.add("夜宵"); System.out.println(collection);//[早餐, 中餐, 晚餐, 夜宵] /* public boolean remove(E e): 把给定的对象在当前集合中删除。 返回值是一个boolean值,集合中存在元素,删除元素,返回true 集合中不存在元素,删除失败,返回false */ System.out.println(collection.remove("夜宵"));//true System.out.println(collection.remove("元宵"));//false /* public boolean contains(E e): 判断当前集合中是否包含给定的对象。 包含返回true 不包含返回false */ System.out.println(collection.contains("夜宵"));//false System.out.println(collection.contains("早餐"));//true //public int size(): 返回集合中元素的个数。 System.out.println(+collection.size());//3 //public Object[] toArray(): 把集合中的元素,存储到数组中。 Object[] objects = collection.toArray(); //遍历数组 for (int i = 0; i < objects.length; i++) { System.out.print(objects[i] + " ");//早餐 中餐 晚餐 } System.out.println(" "); //public boolean isEmpty(): 判断当前集合是否为空。 集合为空返回true,集合不为空返回false System.out.println(collection.isEmpty());//false //public void clear() :清空集合中所有的元素。但是不删除集合,集合还存在 collection.clear(); //再次查看集合中元素的个数和元素是否为空 System.out.println(collection.size());//0 System.out.println(collection.isEmpty());//true } }
来源:https://www.cnblogs.com/wurengen/p/12010447.html