Java集合
代码学习
代码
展开
-
Java集合类基础介绍
初始了解的知识1、集合类都是在java.util包中;2、集合类主要分为两种:Collection集合类和Map集合类3、Collection接口集合类分类:List、Queue、Set;4、List集合的实现类:ArrayList、LinkedList、Vector;5、Queue:用LinkedList实现双端队列、PriorityQueue:基于堆结构实现,可以用它来实现优先队列...原创 2019-05-21 10:12:01 · 169 阅读 · 0 评论 -
多线程下HashMap的死循环问题
多线程下HashMap的问题:1、多线程put操作后,get操作导致死循环。2、多线程put非NULL元素后,get操作得到NULL值。3、多线程put操作,导致元素丢失。为何出现死循环?大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下Java集合—HashMap源码剖析 的分析。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有...原创 2019-07-22 20:41:57 · 538 阅读 · 0 评论 -
Map集合类——LinkedHashMap
LinkedHashMap是继承于HashMap,是基于HashMap和双向链表来实现的。HashMap无序;LinkedHashMap有序,可分为插入顺序和访问顺序两种。如果是访问顺序,那put和get操作已存在的Entry时,都会把Entry移动到双向链表的表尾(其实是先删除再插入)。LinkedHashMap存取数据,还是跟HashMap一样使用的Entry[]的方式,双向链表只是为了...转载 2019-07-26 14:52:46 · 172 阅读 · 0 评论 -
浅谈单链表与双链表的区别
数组的优点随机访问性强(通过下标进行快速定位)查找速度快数组的缺点插入和删除效率低(插入和删除需要移动数据)可能浪费内存(因为是连续的,所以每次申请数组之前必须规定数组的大小,如果大小不合理,则可能会浪费内存)内存空间要求高,必须有足够的连续内存空间。数组大小固定,不能动态拓展链表的优点插入删除速度快(因为有next指针指向其下一个节点,通过改变指针的指向可以方便的增加删除元素)...转载 2019-07-24 10:27:46 · 299 阅读 · 0 评论 -
Collection集合-Queue(LinkedList,PriorityQueue)
QueueLinkedList:可以用它来实现双向队列。PriorityQueue:基于堆结构实现,可以用它来实现优先队列。原创 2019-06-25 14:23:09 · 160 阅读 · 0 评论 -
Collection集合-List(ArrayList,Vector,LinkedList)
List集合List集合有三个实现类:ArrayList、Vector、LinkedList;1、ArrayList特点:内部是数组实现,元素可以重复,允许元素的快速随机访问,线程不安全,当容量不足时,需要将数组元素复制移动到新数组,开销较大;1.1、源码分析1、概述因为 ArrayList 是基于数组实现的,所以支持快速随机访问。RandomAccess 接口标识着该类支持快速随机访...原创 2019-06-25 14:21:05 · 149 阅读 · 0 评论 -
Map集合类——TreeMap
参考文章http://www.importnew.com/29713.htmlTreeMapTreeMap是基于红黑树(一种自平衡的二叉查找树)实现的一个保证有序性的Map,在继承关系结构图中可以得知TreeMap实现了NavigableMap接口,而该接口又继承了SortedMap接口,我们先来看看这两个接口定义了一些什么功能。SortedMap首先是SortedMap接口,实现该接口...原创 2019-05-22 21:42:38 · 2552 阅读 · 1 评论 -
Map集合类——HashTable
HashTable认识HashTable 常用的映射功能和HashMap类似;继承Dictionary类;线程安全的集合类,任一时间只能有一个线程写hashtable;并发性不如ConcurrentHashMap,因为ConcurrentHashMap引入了Segment分段锁;在不需要线程安全中建议使用HashMap;需要线程安全的地方使用ConcurrentHashMa...原创 2019-05-22 20:35:31 · 257 阅读 · 0 评论 -
Map集合类——ConcurrentHashMap
1、存储结构static final class HashEntry<K,V> { final int hash; final K key; volatile V value; volatile HashEntry<K,V> next;}ConcurrentHashMap 和 HashMap 实现上类似,最主要的差别是 Concurr...转载 2019-05-21 20:45:39 · 527 阅读 · 0 评论 -
Map集合类——HashMap
Map集合Map集合存储的是键值对Map集合的实现类:HashTable、LinkedHashMap、HashMap、TreeMap1、HashMap1.1、基础了解:1、键不可以重复,值可以重复;2、底层使用哈希表实现;3、线程不安全;4、允许key为null,但只允许有一条记录为null,value也可以为null,允许多条记录为null;1.2、源码分析(一)以...原创 2019-05-21 16:08:31 · 9403 阅读 · 0 评论 -
Collection集合-Set(HashSet,TreeSet,LinkedHashSet)
Collection集合分类1、Set集合2、List集合3、Queue集合一、Set集合特点:set集合存储的对象是无序状态,对象值不能重复。对象相等的本质就是hashcode值。如果两个对象判断为相等,那么就要重写object类的hashcode方法和equals方法set集合分类:hashsettreesetlinkedhashset1、hashsethashs...原创 2019-05-21 11:20:33 · 352 阅读 · 0 评论 -
Map集合遍历的四种方式理解和简单使用
package com.bie;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * @author BieHongLi * @version 创建时间:2017年2月25日 下午8:58:54 * */public class MapTest01 { publi...原创 2019-07-22 21:14:14 · 116 阅读 · 0 评论