集合框架 JCF
- 为了解决每一个特定的问题,预先设计好的一系列具有继承或实现关系的类与接口
- 三大类 从Collection
- List列表
- 特点:线性或有序
- 元素的放置是有顺序的,通过前一个元素可以找到下一个元素
- add()增加
- remove()删除
- get()查找
- set()改变
- size()长度
- Set集
- 特点:不能重复
- Map映射
- 存放数据都是KV对(键值对)存放
- List列表
- Iterrator迭代器
- 比较器
- Comparable 内部比较器
- ComparTo()
- 由被比较的元素自己实现,实现的规则是该类型的自然排序规则
- Comparator 外部比较器
- Comparable 内部比较器
- 泛型:用来限制集合对象只能放入某种类型的元素
- List
- List lst = new ArrayList();//底层实现-数组
- 做大量的查询或者增加
- List lst = new LinkedList();//底层实现-双向链表
- 从中间添加或删除数据
- List lst = new Vector();//底层实现-数组
- 链表:单独的一个存放空间,有一个引用指向下一个存放空间
- List lst = new ArrayList();//底层实现-数组
- 遍历-将集合中的每个元素访问一次
- 1.普通for循环
- 2.for-each
- for(String tmp : lst){
- }
- 3.Iterrator迭代器
- 只操作list和set
- Set(集):不能重复–只有增加,删除,获取个数
- HashSet
- TreeSet
- 根据equals()和hashcode()来判断是否相同
- 一旦重写重写了equals()就要重写ahshcode();
- eauals返回false,不要求hashcode一定返回不同值
- remove
- Map
- HashMap
- TreeMap
- put() 将键值对存入集合
- 当键不重复是做增加,重复时做修改元素
- get() 根据键取出元素的值
- keySet() 将Map中的所有键取出来形成一个Set
- values() 将Map中的所有值取出来形参一个Collection
- remove() 根据键移除
- 获得所有的键
- Setallkey = map.keySet();
- 直接获得所有的值
- Collection allValue = map.values();
- put() 将键值对存入集合