集合
概念
定义:java中的集合是工具类可以存储任意数量的具有共同属性的对象,简单来说集合就是容器,用于存储相同特征的事物。
使用场景:1.无法预测存储数据的数量。
2.同时存储具有一对一关系的数据。
3.需要进行数据的增删。
4.数据重复问题。
体系结构
List(列表)
定义:List是元素有序且可以重复的集合称为序列,List可以精准控制每个元素插入位置,或删除某个位置的元素,List的两个主要实现类是ArrayList和LinkedList
ArrayList
ArrayList底层由数组实现,动态增长,以满足应用程序的需求
在列表尾部插入或删除元素非常有效,更适合查找和更新元素
ArrayList中的元素可以为null。
Set
set是元素无需且不可以重复的集合,被称为集
HashSet
1.HashSet是Set的一个重要实现类,称为哈希集
2.HashSet的元素无序七点不可以重复
3.Hashset中只允许一个null元素
4.具有良好的存取和查找功能
构造方法
迭代器
案例
需求
类的构建
equals方法用于比较对象
重写equals方法前
重写equals方法后
插入一个对象
查找花花
输入信息和set集合,在集合中查找是否存在对象.getName()==信息
删除单个猫
删除所有猫
泛型
JDK5.0之后引进,用于控制对象的类型,之前都是按照object类类型使用时需要转换,如Cat c=(Cat)xxx对象,我们必须知道这个对象是猫类对象才能比较,否则会报错
BUG
解决办法
1.如果删除单个对象在删除语句后添加break
2.删除多个对象先将要删除对象添加成一个集合使用,对象集合.removeALL(要删除对象集合)
Map
Map中的数据是以键值对的形式存储的
Key-value以Entry类型的对象实例存在
可以通过key值快速查找value
一个映射不能包含重复的键,键不重复,值可以重复
HashMap
1.基于哈希表的Map接口的实现。
2.允许使用null值和null键。
3.key值不可重复。
4.HashMap中的Entry对象是无序排列的。
HashMap构造方法
案例1
可以使用map.entrySet().iterator()
案例2
需求