随笔分类 -  Java / Java集合

介绍Java集合
摘要:[toc] # 1 Disruptor ## 1.1 简介 ### 1.1.1 定义 `Disruptor` 是一个开源的高性能内存队列,由英国外汇交易公司 LMAX 开发的,获得了 2011 年的 Oracle 官方的 Duke's Choice Awards(Duke 选择大奖)。 `Disru 阅读全文
posted @ 2023-07-04 11:41 上善若泪 阅读(250) 评论(0) 推荐(0) 编辑
摘要:1 List元素去重 1.1 移除List中指定某一元素 1.1.1 For循环移除 1.1.1.1 For移除不彻底问题 假如去除List中的Morning元素 @Test public void testRemoveDuplicate(){ List<String> strings = Arra 阅读全文
posted @ 2023-04-04 11:58 上善若泪 阅读(201) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 1 Java位集合 前几天刚学习了[Redis中位操作命令](https://jingzh.blog.csdn.net/article/details/129168155),今天顺便学下java中位集合 ## 1.1 Bit-Map ### 1.1.1 简介 `Bit-map`的基本 阅读全文
posted @ 2023-03-05 20:06 上善若泪 阅读(1480) 评论(0) 推荐(0) 编辑
摘要:1 HashMap删除报错 1.1 引言 @Test public void testPut(){ Map map = new HashMap(); map.put("aa","13456"); map.put("bb","456789"); map.put("cc","789456"); map. 阅读全文
posted @ 2023-02-06 10:16 上善若泪 阅读(201) 评论(0) 推荐(0) 编辑
摘要:目录1 Properties类1.1 认识properties文件1.2 了解Properties类1.3 properties文件与Properties类的关系1.4 使用Properties类1.4.1 操作properties1.4.2 操作XML文件1.4.3 java读取propertie 阅读全文
posted @ 2022-03-10 16:06 上善若泪 阅读(126) 评论(0) 推荐(0) 编辑
摘要:1 ConcurrentLinkedQueue 1.1 引言 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而 阅读全文
posted @ 2021-12-25 20:44 上善若泪 阅读(598) 评论(0) 推荐(0) 编辑
摘要:1 Queue 1.1 定义 前面讲了Stack是一种先进后出的数据结构:栈,那么对应的Queue是一种先进先出(First In First Out)的数据结构:队列 对比一下Stack,Queue是一种先进先出的容器,它有两个口,从一个口放入元素,从另一个口获取元素。如果把栈比作一个木桶,那么队 阅读全文
posted @ 2021-11-14 12:57 上善若泪 阅读(77) 评论(0) 推荐(0) 编辑
摘要:1 Stack源码 前面我们已经接触过几种数据结构了,有数组、链表、Hash表、红黑树(二叉查询树),今天再来看另外一种数据结构:栈 1.1 栈定义 什么是栈,直接举个例子,栈就相当于一个很窄的木桶,我们往木桶里放东西,往外拿东西时会发现,我们最开始放的东西在最底部,最先拿出来的是刚刚放进去的。所以 阅读全文
posted @ 2021-11-14 09:43 上善若泪 阅读(42) 评论(0) 推荐(0) 编辑
摘要:1 集合容器中Strategy设计模式 前面我们说TreeMap和TreeSet都是有顺序的集合,而顺序的维持是要靠一个比较器Comparator或者map的key实现Comparable接口 既然说到排序,首先我们不用去关心什么是Strategy设计模式,也不用关心它为了解决什么问题而存在,我们直 阅读全文
posted @ 2021-11-13 22:09 上善若泪 阅读(62) 评论(0) 推荐(0) 编辑
摘要:1 TreeSet TreeSet是一个有序的Set集合。 既然是有序,那么它是靠什么来维持顺序的呢,TreeMap中是通过一个比较器Comparator比较大小,因此TreeSet要实现比较也必须依靠于Comparator接口。 Map和Set有很大渊源关系,比如Map有HashMap,Linke 阅读全文
posted @ 2021-11-13 21:24 上善若泪 阅读(45) 评论(0) 推荐(0) 编辑
摘要:1 TreeMap TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解。 要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链表,Hash表等树这种结构又有什么优点。 1.1 二叉查询树、红黑树 简单总结一下数组,链 阅读全文
posted @ 2021-11-13 18:59 上善若泪 阅读(85) 评论(0) 推荐(0) 编辑
摘要:1 HashSet源码解析 HashSet也是一种java容器,这里不再赘述hash的概念原理等一大堆东西了,需要在啰嗦一句的是hash表是基于快速存取的角度设计的,也是一种典型的空间换时间的做法 先来看下Set的特点:Set元素无顺序,且元素不可以重复 无顺序,由于散列的缘故;不可重复,HashM 阅读全文
posted @ 2021-11-12 16:38 上善若泪 阅读(82) 评论(0) 推荐(0) 编辑
摘要:1 LinkedHashMap(jdk1.7之前) 我们知道Map其底层数据存储是一个hash表(数组+单向链表)。接下来我们看一下另一个LinkedHashMap,它是HashMap的一个子类,他在HashMap的基础上维持了一个双向链表(hash表+双向链表),在遍历的时候可以使用插入顺序(先进 阅读全文
posted @ 2021-11-12 12:37 上善若泪 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1 HashMap源码 前面了解了jdk容器中的两种List,回忆一下怎么从list中取值(也就是做查询),是通过index索引位置对不对,由于存入list的元素时安装插入顺序存储的,所以index索引也就是插入的次序。 Map是这样一种容器,它可以存储两个元素键和值,根据键这个关键字可以明确且唯一 阅读全文
posted @ 2021-11-12 10:34 上善若泪 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1 Iterator设计模式 由于ArrayList和LinkedList这两种list是我们工作中最常用到的List容器。当然数组和链表也是两种常见的基本数据结构,其他基本数据结构还有堆栈、队列、树等,对java容器的学习,也可以看做是对数据结构的学习和使用。 在ArrayList和LinkedL 阅读全文
posted @ 2021-11-11 11:57 上善若泪 阅读(45) 评论(0) 推荐(0) 编辑
摘要:目录1 LinkedList源码1.1 链表的概念1.1.1 单向链表1.1.2 单向循环链表1.1.3 双向链表1.1.4 双向循环链表1.2 定义1.2.1 类的属性1.2.2 Node 的静态内部类1.2.3 构造函数1.2.4 查找 - get1.2.5 添加add1.2.6 修改1.2.7 阅读全文
posted @ 2021-11-11 11:22 上善若泪 阅读(123) 评论(0) 推荐(0) 编辑
摘要:目录1 ArrayList源码1.1 ArrayList定义1.2 底层存储1.3 构造方法1.4 增加1.5 删除1.6 更新1.7 查找1.8 是否包含1.9 容量判断1.10 ArrayList和LinkedList1.10.1 二者区别1.10.2 应用场景区别 1 ArrayList源码 阅读全文
posted @ 2021-11-10 16:51 上善若泪 阅读(99) 评论(0) 推荐(0) 编辑
摘要:1.1 List 1.1.1 遍历ArrayList package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo 阅读全文
posted @ 2021-11-10 10:25 上善若泪 阅读(197) 评论(0) 推荐(0) 编辑
摘要:声明:以下文章是以jdk7之前源码分析,而非现在jdk8源码分析,学习过去源码可以方便打牢源码基础,点击此处学习jdk8之Map语法 1 分析Hash存储机制 1.1 概述 HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash算法决定集合元素的存储位 阅读全文
posted @ 2021-11-09 15:04 上善若泪 阅读(94) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示