文章目录
集合
集合:同一种事物放在一起就是集合 (引用数据类型 这是与数组的根本区别)
集合 Collection(接口) 父类是Interbdle接口(功能是实现集合的遍历)
集合的分类
- List(接口) 有序可以重复 :常见的实现类: ArrayList(数据实现) LinkedList(链条实现)
- Set(接口):无序不重复 常见的实现类: HashSet(哈希表实现) TreeSet(二叉数实现)
ArragyList:
实现了List接口(List 继承Collention接口)
集合里面的方法 主要是增删该查
ArrayList
ArrayList <> 放的就是泛型 就是集合里面放的数据类型
泛型的好处
- 省去了从集合中取出数据时的强制转换
- 加了泛型 就会要求我们放入数据的时候,只能放入该数据类型 取的时候也是这种数据类型
- <> 放入指定的数据类型
ArrayList
- ArrayList 元素个数 szie()方法
- 增 add(元素) 数组的长度和size 不是一回事 如果size()小与数组长度, 直接将元素放入到数组里面 如果size() 等于数组长度,会自动扩容
- 删
- remove(元素)删除第一次出现的元素 remove(元素)删除指定索引的元素
- 改 set(索引, 元素)
- 查 get(索引)
ArrayList和LinkedList的区别
- 底层结构不同 数组 链表
- ArrayList 查询快 增删慢
- LinkedLis 查询慢 增删快
HashSet
无序 ,没有索引
不重复 (可以去重)
for 和 foreach的区别:
- 1、for 可以操作索引,但是语法结构相对复杂
- 2、foreach不可以操作索引,但是语法结构相对简单
HashSet和HashTable的区别:
1 HashSet是线程不安全的,效率高,允许nuLL 值
2 HashTable 是线程安全的,效率低,不允许nuLL 值
HashMap
双集合
new HashMap <K,V>K 建 v值
建是位于的 值可以重复
jdk8 HashMap底层是: 数组+链表+红黑树
- HashMap负载因子 0.75 元素个数超过数组长度的0.75 被 数组长度就要扩容2被
- 链表长度超8 就会转成红黑树 如果红黑树长度小于6 红黑树就会转成链表
- HashMap初始容量 16