文章 2024-04-09 来自:开发者社区

java多线程之并发容器集合

一、多线程操作容器存在的问题 如下代码 public class NotSafeDemo { public static void main(String[] args) { List list = new ArrayList(); fo...

java多线程之并发容器集合
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之LinkedHashMap(源码解读)

概述LinkedHashMap是HashMap的子类,它的大部分实现与HashMap相同,两者最大的区别在于,HashMap的对哈希表进行迭代时是无序的,而 LinkedHashMap对哈希表迭代是有序的,LinkedHashMap默认的规则是,迭代输出的结果保持和插入key-value pair的顺序一致(当然具体迭代规则可以修改)。LinkedHashMap除了像HashMap一样用数组、单....

史上最全的Java容器集合之LinkedHashMap(源码解读)
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之HashMap(源码解读)(二)

HashMap的成员方法put方法//向哈希表中添加元素 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } 复制代码 向用户开放的put方法调用的是putVal方法:putVal方法需要判断是否出现哈希冲突问题:其中如果哈希值相等,key也相等,则是覆盖value操作;如...

史上最全的Java容器集合之HashMap(源码解读)(二)
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之HashMap(源码解读)(一)

一 什么是MapMap是一个接口,他是key-value的键值对,一个map不能包含重复的key,并且每一个key只能映射一个value;Map接口提供了三个集合视图:key的集合,value的集合,key-value的集合;Map内元素的顺序取决于Iterator的具体实现逻辑,获取集合内的元素实际上是获取一个迭代器,实现对其中元素的遍历;Map接口的具体实现中存在三种Map结构,其中Hash....

史上最全的Java容器集合之HashMap(源码解读)(一)
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之equals 和 hashCode

equals()方法Object原生的equals方法: public boolean equals(Object obj) { return (this == obj); } 复制代码 从代码中可以看出,原生的equals方法使用的是“==”来比较的。学过Java的人都应该知道,“==”比较的是内存地址,所以原生的equals方法只有在自己与自己比较的时候才会返回t...

史上最全的Java容器集合之equals 和 hashCode
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之Vector和LinkedList(源码解读)

Vector 源码分析其实Vector要讲的东西不多了,因为它和ArrayList的代码很像,就是再每个方法上加了锁,如下图因为大部分和前面差不多,我来说说不同的点吧看图上面的 这个是Vetor和ArrayList不同的另一个点 它的增长因子是可以自己定义的。我们来看grow方法这段代码是扩容代码,可以看如果定义了曾长因子就每次扩容增长因子,不然就是扩容2倍其他的增删改查,我就不说了,自己也没细....

史上最全的Java容器集合之Vector和LinkedList(源码解读)
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之ArrayList(源码解读)(二)

add(int, E)方法public void add(int index, E element) { // 插入数组位置检查 rangeCheckForAdd(index); // 确保容量,如果需要扩容的话则自动扩容 ensureCapacityInternal(size + 1); // Increments modCou...

文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之ArrayList(源码解读)(上)

一、ArrayList认识概念概念:ArrayList是一个其容量能够动态增长的动态数组。但是他又和数组不一样,下面会分析对比。它继承了AbstractList,实现了List、RandomAccess, Cloneable, java.io.Serializable。RandomAccess接口,被List实现之后,为List提供了随机访问功能,也就是通过下标获取元素对象的功能。实现了Clon....

史上最全的Java容器集合之ArrayList(源码解读)(上)
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之基础数据结构(手撕链表)

数组第一个数组是一种效率最高的存储和随机访问的方式数组是一种连续存储线性结构,元素类型相同,大小相等,存取速度快无论使用哪种类型的数组,数组的标识符[] ,它其实是一个引用,指在堆中创建了一个真实的对象(这个对象对我们程序员是不可见的),我自己找了半天,我说他既然有length属性,那我肯定能在Java中找到这个对象,结果我硬是没找到,这个对象保存的是对其他对象的引用。length方法是唯一一个....

史上最全的Java容器集合之基础数据结构(手撕链表)
文章 2023-11-23 来自:开发者社区

史上最全的Java容器集合之入门

集合的由来通常,我们的Java程序需要根据程序运行时才知道创建了多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是!数组只能存放同一类型的数据,而且其长度是固定的,那怎么办了?集合便应运而生了。集合和数组的区别:集....

史上最全的Java容器集合之入门

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注