java集合详解

集合: 存放引用数据类型的容器。 主要学增删改查
 Collection: 集合,是一个接口,继承了Iterable,里面有很多方法
 List: 也是一个接口,继承了Collectio.
 特点: 有序,可以重复
 Set: 也是一个接口,继承了Collectio
 特点: 无序,不重复
 Map:
 泛型: 指的就是容器中元素的数据类型。 <数据类型>
 好处: 就是省去了获取元素的时候,类型转换。

 List接口: 里面有很多方法(增啥改查)
 ArrayList: (add、get、size()、sort()最常用)
 特点: 内存空间连续
 add()
 remove(): 只能删除一个,如果有重复的数据,删除第一个
 get() : 通过索引获取
 set():
 size(): 获取元素个数的
 sort()
 contains(Object o)
 ArrayList: 底层是Object数组。所有的增删改查都是基于数组进行的。
 size: ArrayList里面标记元素个数的。
 添加的逻辑:
 如果底层的数组元素满了,就要扩容,扩容1.5倍。然后将元素添加到容器
 LinkedList: 链表
 链表实现了 List 和 Deque两个接口
 特点:内存空间不连续。
 底层是Node, 分为3部分 前一部分 数据 后一部分

 Deque: 队列, 先进先出
 Stack: 栈: 先进后出

 ArrayList和LinkedList区别:
 ArrayList: 查询快,增删慢
 LinkedList 查询慢,增删快

 查看源代码的时候:
 c: class 类
 m: method 方法
 f: field 变量
 md5

HashSet: 实现了Set接口。
 无序: 没有索引
 不重复:

 add(): 添加了重复元素,只显示一个
 remove()

 hashSet和hashtable区别:
 hashSet线程不安全 效率高
 Hashtable 线程安全,效率低
 迭代器:iterator
 - hasNext
 - next

增强for循环 foreach循环
 实现了Iterable接口的都可以用

 for(泛型数据类型 变量 : 集合名称){
 操作变量
 }

 优点: 简单明了
 缺点: 不能操作索引

 HashMap: 双列集合 <K,V>

 put 如果键存在就是修改,不存在就是添加。
 get
 remove
 size
 keySet
 面试题:
 jdk8 以后HashMap的数据结构是: 数组+ 链表+ 红黑树
 当放入某个元素的时候,hashCode算出来要放入的位置,该位置存在元素,那么就以链表的方法放到下面,
 如果元素超过8个,就变成红黑树。
 如果红黑树的情况下,map删除元素,当红黑树中的元素少于6个的时候,红黑树变成链表。 泊松分布。
 HashMap初始化的时候,数组长度为16.
 负载因子 0.75.
 扩容2倍。


 工具类 Collections
 - sort
 - reverse
 - shuffle
 - min
 - max
 - addAll
Integer[] array = list.toArray(new Integer[0]);
 List.of(数组名称)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值