目录
集合
集合
同一类事物放在一起组成了集合,和数组区别在于引用数据类型。
cllection(接口)父类是iterable(接口:功能是集合的迭代遍历)
集合分类
- list接口:有序可以重复:常见的实现类:ArrayList(数组实现) LinkedList
- set接口:无序不重复:常见实现类
ArrayList
书写格式
ArrayList<String> staff = new ArrayList<>();
增删改查
- 增
staff.add();
- 删
staff.remove();
- 改
staff.set();
- 查
staff.get();
ArrayList和LinkedList的区别
- 底层数据不一样 数组 链表
- ArrayList查询快,增删慢
- LinkedList查询慢,增删快
HashSet
HashSet: 无序(没有索引) 不重复(可以去重)
HashSet格式
HashSet<String> staff = new HashSet<>();
for和foreach的区别
1、for循环可以操作索引,但是语法结构复杂
2、foreach不可以操作索引,但是语法结构简单
HashSet和HashTable的区别:
- HashSet是线程不安全的,效率高,允许null值
- HashTable是线程安全的,效率低,不允许null值
HashMap双列集合
HashMap格式
HashMap<String, Integer> text = new HashMap<>();
键 值
- 键是唯一的,值可以重复。
jdk8 HashMap底层是: 数组+链表+红黑树
- HashMap负载因子: 0.75 元素个数超过数组长度的0.75倍,数组就会扩容。2倍
- 链表的长度超过8,链表就会转换成红黑树。如果红黑树的长度小于6,红黑树就会转换成链表。
- HashMap的初始容量: 16