栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java集合框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java集合框架

java集合框架
  • 集合类图
    • List集合:
    • 扩容:
    • 实现:
      • ArrayList
      • LinkedList
      • Vector
      • CopyOnWriteArrayList
    • ArrayList remove 的注意点
    • Set
    • 遍历:foreach
    • 实现:​ HashSet
    • TreeSet
    • Map
      • 遍历:
      • 实现:HashMap
  • Table数组中的的Node

集合类图

List集合:
特点:元素有序,且可重复

遍历:下标,foreach,迭代器
扩容:
初始容量10,负载因子0.5,扩容增量0.5倍
新容量 = 原容量 + 原容量 * 0.5 , 如 ArrayList的容量为10,一次扩容后是容量为15
实现: ArrayList
简单数据结构,超出容量自动扩容,动态数组
​ 内部实现是基于基础的对象数组的
​ 随机访问快
​ 不适合随机增加或删除
线程不安全
LinkedList
LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部
​ 线程不安全
​ LinkedList可被用作堆栈(stack)【包括了push,pop方法】,队列(queue)	或双向队列(deque)
​ 以双向链表实现,链表无容量限制,允许元素为null,线程不安全
​ 适合做随机的增加或删除
Vector
 线程安全
但行性能慢,不建议使用
CopyOnWriteArrayList
​ 写时复制
线程安全
​ 适合于读多,写少的场景
​ 写时复制出一个新的数组,完成插入、修改或者移除操作后将新数	组赋值给array
​ 比Vector性能高
​ 最终一致性
​ 实现了List接口,使用方式与ArrayList类似
ArrayList remove 的注意点

列举:
​ 数据准备:为方便演示,需要有紧挨在一起的两个或多个相同的元素

 List list=new ArrayList();
  list.add(1);
  list.add(2);
  list.add(3);
  list.add(3);
  list.add(4);

for(int i=0;i
   if(list.get(i)==3) list.remove(i);//当他删除之后 我们的另一个三就会挤上去  所以输出的是                                              [1,2,3,4]
}
Set
特点:
无序,不重复
遍历:foreach
foreach,迭代器
扩容:

初始容量16,负载因子0.75,扩容增量1倍
实现:​ HashSet
​ 它存储唯一元素并允许空值

​ 依据对象的hashcode来确定该元素是否存在

​ 由HashMap支持

不保持插入顺序

​ 非线程安全

​ 性能参数:初始容量,负载因子

​ 默认值: 初始容量16,负载因子0.75

​ 示例:new HashSet<>(20, 0.5f);
TreeSet
​ 是一个包含有序的且没有重复元素的集合
​ 作用是提供有序的Set集合,自然排序或者根据提供的Comparator进行排序

​ TreeSet是基于TreeMap实现的

Map
特点:
​ 无序,键值对,键不能重复,值可以重复,
​ 键重复则覆盖,没有继承Collection接口
​ 扩容:初始容量16,负载因子0.75,扩容增量1倍
遍历:
​ 先获取所有键的Set集合,再遍历(通过键获取值)
​ 取出保存所有Entry的Set,再遍历此Set即可
实现:HashMap
​ 线程不安全,最常用,速度快
​ 内部采用数组来存放数据
​ 基本原理
Table数组中的的Node


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996377.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号