Java集合
文章平均质量分 93
Iovems
这个作者很懒,什么都没留下…
展开
-
1.Java容器-概述
容器主要有两种:Collection和Map; Collection又分为Set,List和Queue;Collection系列数组与Collection(集合)的区别长度 数组的长度是固定的; 集合的长度可变;元素的数据类型 数组只能存储同一种数据类型, 一个集合可以存储不同类型的数据; 数组可以存储基本数据类型,也可以存储...原创 2018-04-15 16:23:27 · 1288 阅读 · 0 评论 -
2.Java容器-List详解
本文主要介绍List的三个子类:ArrayList,LinkedList和Vector;ArrayList详解 ArrayList的底层实现就是一个数组,但有扩容的概念,能够实现动态地增长;ArrayList的属性 private static final long serialVersionUID = 8683452581122892189L; /**...原创 2018-04-15 23:00:08 · 1357 阅读 · 0 评论 -
3.Java容器-Map详解
Map与Collection的区别 1.Collection被称为集合,Map被称为映射; 2.Map存储的元素是键-值对,键是唯一的,值可以重复; 3.Collection存储的元素是单独出现的;Set不可重复,List可以重复; 4.Map里面的所有的操作都是针对键的,而不是针对值;Map常用的方法散列表 Set也是基于Map来实现的...原创 2018-04-17 15:30:59 · 1392 阅读 · 0 评论 -
4.Java容器-HashMap详解
HashMap概述 HashMap是基于哈希表和Map接口实现的;不保证有序;与HashTable最大的区别在于,非线程安全和允许null作为key和value; 如果需要同步的HashMap,可以用 Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用ConcurrentHashMap 在JDK1.6中,Ha...原创 2018-04-19 10:49:25 · 3034 阅读 · 1 评论 -
7.Java容器-ConcurrentHashMap
前言线程不安全的HashMap 在多线程环境下,HashMap的put操作可能会引起死循环,导致CPU利用率接近100%; 因为多线程可能会导致HashMap的Entry链表在扩容的时候,形成环形数据结构,这样,Entry的next节点永远不为空,获取Entry的时候就会产生死循环;效率低下的HashTable和Collections.synchronizedM...原创 2018-05-15 14:52:22 · 1235 阅读 · 0 评论 -
5.Java容器-LinkedHashMap
LinkedHashMap概述 LinkedHashMap是HashMap的子类,内部使用双向链表进行顺序的维护,内部类Entry为HashMap的Node的子类; 底层是散列表和双向链表,插入的顺序是有序的(底层链表致使有序),和HashMap一样,允许key和value为null,初始容量和装载因子对LinkedHashMap的性能影响很大;也是非同步的,也可以调用Co...原创 2018-05-28 17:09:43 · 1302 阅读 · 0 评论 -
6.Java容器-TreeMap
概述 1.非同步; 2.TreeMap实现了NavigableMap接口,而NavigableMap接口继承着SortedMap接口,所以TreeMap是有序的; 3.TreeMap底层是红黑树,它方法的时间复杂度都不会太高:log(n); 4.TreeMap的构造器可以接受一个Comparator参数用以决定key的顺序,如果没有指定,那么尝试将key强转为C...原创 2018-05-28 20:39:52 · 1261 阅读 · 0 评论 -
8.Java容器-Set详解
本文主要讲Set的三个子类: HashSet:底层数据结构是哈希表(是一个元素为链表的数组) + 红黑树; TreeSet集合:1.底层数据结构是红黑树(是一个自平衡的二叉树);2.保证元素的排序方式; LinkedHashSet集合:底层数据结构由哈希表(是一个元素为链表的数组)和双向链表组成;HashSet 1.实现Set接口; ...原创 2018-05-29 11:00:33 · 1939 阅读 · 0 评论