数组:存多个数据 操作不便
集合(Collection ):存多个数据 管理多个数据 提供更为方便的操作
Iterator:专门针对集合 进行迭代
List:有序的 允许重复的元素
ArrayList:底层数组 从本质上看 和 数组没有区别 允许null 线程不安全 不擅长插入、删除 擅长 查询 遍历
Vector : 底层数组 线程安全
LinkedList:底层是链接列表 允许null 适合插入 、删除 不适合查询,遍历
Set:不包含重复元素 最多包含一个 null 元素
HashSet: 底层是哈希表 无序 允许使用 null 元素 线程不安全
TreeSet: 底层是树形结构 有大小序 通常都是放同一种类型,否则意义不明确
自然排序:Comparable 可比较性
比较器:Comparator 对集合排序
优先级:Comparator>Comparable
Map:存放一对一对的数据 K-V
***严格意义上不属于 collection ,但是因为map也是存放多个元素,所以口语中 依然把map 称之为map集合
HashMap: 允许使用 null 值和 null 键 key键通过hashSet维护
Hashtable :与HashMap雷同 除了非同步和允许使用 null 之外
TreeMap: key键是由treeSet维护
Collections:专门针对Collection 进行操作的一些方法 辅助类
什么叫相等:
equals:揭示了什么叫相等
Object类中equals 方法 指的是 指向同一个对象 才相等(x == y) ==比较地址
字符串定义了相等的规则:每个位置上字符都相等,这2个字符串才相等
*****通常情况下,如果比较相等,多数都要覆盖equals
hashCode: 值 是由对象在内存中的地址 然后 通过 哈希算法 计算出来的数字
在equals方法没有修改前提下:相等对象 即为 相同对象,所以哈希码值 相等,但是不相等对象,哈希码值 不要一定不等,
绝大多数情况下是不等的,在个别情况下 可能相等(哈希算法问题 -- 一个方程 2个解)
toString:返回该对象的字符串表示 应该是简明但易于读懂 不会对对象的数据和地址 带来任何变化
-------------------------------------------------------------
作业:
1.查阅API
2.完成员工管理系统(1,添加员工,2,查询所有员工 3,查询员工,4删除员工,5修改员工,6 退出) 员工存放在集合中
数据结构:数组 链表 哈希表 树 图