了解Collection与Map的关系(HashMap与ConcurrentHashMap的加锁力度)等五小问

本文深入探讨JAVA数据结构,包括ArrayList与LinkedList的区别、HashMap与ConcurrentHashMap的加锁策略、LinkedHashMap的有序实现、TreeMap的有序性原理以及HashSet与LinkedHashSet的内部结构。内容涵盖集合类Collection和映射类Map的关键特性,帮助读者理解不同数据结构的适用场景和性能特点。
摘要由CSDN通过智能技术生成

JAVA的数据结构

image-20230217172417534

所有JAVA的数据结构都是继承自Iterator类用来做迭代遍历,Iterator主要会区分开2种数据类型,第一种是集合类Collection,另一种是带映射关系的Map类,

关于Collection类,即使在无序不重复的Set中仍然可以分为无序的HashSet与强制进行排序的TreeSet,LinkedHashSet与TreeSet虽然都是有序但是排序方式是不同的,LinkedHashSet主要是依靠HashSet的插入顺序去排序的,而TreeSet主要是用我们插入对象的Object的Compare方法去做CompareTo的比较获得前后顺序。

1.ArrayList与LinkedList的区别

我相信学过数据结构的朋友都很熟悉,这是第一章的内容

ArrayList是内部以数组方式来实现的,是以一块完整连续是内存空间来实现的,LinkedList是内部以链表的方式进行实现的,如果进行读的操作,ArrayList的时间复杂度是O(1),因为只需要找到数组中的下标进行寻址即可,而LinkedList是依靠头结点依次遍历得到元素。所以时间复杂度是O(n)。若要进行删除和插入操作,则ArrayList要移动连续的元素,而LinkedLsit只需要做指针节点的改变即可满足要求,所以这样的操作他们的时间复杂度则恰好相反。

2.HashMap的内存结构,Conc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值