Java的集合类由Collection接口和Map接口派生,其中: List代表有序集合,元素有序且可重复 Set代表无序集合,元素无序且不可重复 Map集合存储键值对 那么本篇文章将从源码角度讨论一下无序集合Set。 HashSet HashSet实现 Set 接口,由哈希表(实际上是一个 Has ...
分类:
编程语言 时间:
2020-03-02 11:01:09
阅读次数:
57
Hashtable 简介 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。 Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的, ...
分类:
其他好文 时间:
2020-03-02 10:27:54
阅读次数:
57
ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现 ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进行分析(JDK1.7). ConcurrentHashM ...
分类:
其他好文 时间:
2020-03-02 10:26:15
阅读次数:
52
今天看服务端性能优化几个有用的地方记录下来: 问题代码: Map<Integer,Integer> map= new HashMap<Integer,Integer>(); for (int k=0;k<100000,k++){ map.put(k,k); } for(String key:map. ...
分类:
其他好文 时间:
2020-03-01 21:34:30
阅读次数:
67
数组的优点: 数组一旦初始化,长度就是确定的 数组存储数据类型单一 通过数组索引的方式调用数组元素 数组中存储的多个元素是有序的,可以重复的,使用的内存空间是连续的 数组的弊端: 一旦初始化,长度就不可变 数组中操作面较简单,没有涉及到增,删,改,查,等操作的方法 针对与开发中的复杂问题,使用数组难 ...
分类:
编程语言 时间:
2020-03-01 16:00:16
阅读次数:
75
介绍 工作队列主要用于异步处理消息,详细介绍参考其他文章,这里主要提供使用方法 类似方法有List、HashMap、Dir,但是性能略逊一筹。 场景举例 硅晶片标刻: 通讯协议采用TCP协议 1、程序(Server)对接上游LAMA机器(Client),接受标刻条码信息。 2、程序(Client)控 ...
HashMap的结构和底层实现原理是什么? HashMap用的是非常常见的结构:数组和链表的结合的数据结构。数组的每个地方都存了Key-Value这样的实例,在JDK8中交做Node实例。因为数组本身所有的位置都为null,所以在put的时候会根据key值hash算出一个index值。但是数组的长度 ...
分类:
其他好文 时间:
2020-03-01 12:41:52
阅读次数:
92
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 题解:Hashmap 1 public static RandomList ...
分类:
其他好文 时间:
2020-03-01 00:33:25
阅读次数:
52
在jdk1.8中,hashMap的resize()函数做了相应的调整,尤其是对于在buckets的链表中,官方给出的该resize()函数主要在两种情况下使用: 1. 初始化的时候 2. 将哈希表扩容成之前的两倍时 下面首先看初始化时,实际的resize()函数做了哪些工作: 从代码逻辑来看,初始化 ...
分类:
其他好文 时间:
2020-03-01 00:26:22
阅读次数:
96