![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java Collections Framework
文章平均质量分 65
DoUUnderstand
这个作者很懒,什么都没留下…
展开
-
JavaSE 集合框架(4) - 总结
Collection* List(存取有序,有索引,可以重复)* ArrayList* 底层是数组实现的,线程不安全,查找和修改快,增和删比较慢* LinkedList* 底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢* Vector* 底层是数组实现的,线程安全的,无论增删改查都慢* 如果查找和修改多,用ArrayList* 如果增和删多,用Li原创 2017-03-25 16:31:05 · 473 阅读 · 0 评论 -
Java Collections Framework - 深入HashMap
HashMap作为面试中被问道频率最高的问题,这篇文章就已面试的角度来说明HashMap的底层原理。HashMap原理HashMap的初始值都是Null的,储存的都是键值对(Entry)众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashM...原创 2017-05-25 13:28:01 · 857 阅读 · 0 评论 -
JavaSE 集合框架(3)- Map集合 HashMap LinkedHashMap
Map接口概述 * 该集合存储键值相对。一对一对往里存。而且要保证键的唯一性。* 将键映射到值的对象* 一个映射不能包含重复的键* 每个键最多只能映射到一个值Map集合的功能概述* a:添加功能* V put(K key,V value):添加元素。* 如果键是第一次存储,就直接存储元素,返回null* 如果键不是第一次存在,就用值把以前的值原创 2017-03-24 17:33:34 · 562 阅读 · 0 评论 -
JavaSE 集合框架(2)- Set集合
Set集合:元素是无序的(存入和取出给出的顺序不一致),元素不可以重复。 【1】HashSet:底层数据结构是哈希表。 HashSet是如何保证元素的唯一性的呢? 是通过两个方法,hashCode和equals来完成。 如果元素的hashCode值相同,才会判断equals是否为true. 如果元素的hashCode值不同,不会调用equals.注意...原创 2017-03-24 17:22:20 · 618 阅读 · 0 评论 -
JavaSE 集合框架(1)- 集合框架基础以及List集合
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储。集合就是存储对象最常用的一种方式。集合类和数组同时容器,有何不同呢? 数组虽然也可以存储对象,但是长度固定;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。JAVA集合大致可以分成Set ,List,Queue, Map四个体系。Set代表无序、不可重复的集合;List代表有序、重复的集合;而原创 2016-09-22 16:17:05 · 794 阅读 · 0 评论 -
Java Collections Framework - 深入ArrayList
ArrayListArrayList是最常见以及每个Java开发者最熟悉的集合类了,顾名思义,ArrayList就是一个以动态数组形式实现的集合. ArrayList底层以数组实现,允许重复,默认第一次插入元素时创建数组的大小为10,超出限制时会变成1.5倍的容量,每次扩容都底层采用System.arrayCopy()复制到新的数组,初始化时最好能给出数组大小的预估值。添加元素...原创 2017-06-18 16:27:32 · 335 阅读 · 0 评论 -
Java集合方面面试题总结
ArrayList list = new ArrayList(20);中的list扩充几次?ArrayList的构造函数总共有三个: (1)ArrayList()构造一个初始容量为 10 的空列表。 (2)ArrayList(Collection< ? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排原创 2017-09-18 12:17:35 · 995 阅读 · 0 评论 -
Java Collections Framework - 深入LinkedList
LinkedListLinkedList是基于链表实现的,是一种双向链表。 LinkedList既然是一种双向链表,必然有一个存储单元,看一下LinkedList的基本存储单元,它是LinkedList中的一个内部类:private static class Entry<E> { E element; Entry<E> next; En...原创 2017-06-20 10:08:35 · 416 阅读 · 0 评论 -
Java Collections Framework - ConcurrentHashMap
(1)线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所 以在并发情况下不能使用HashMap。例如,执行以下代码会引起死循环。final HashMap<String, String> map = new HashMap<String, String>(2); Thread t = ...原创 2017-09-08 14:03:36 · 345 阅读 · 0 评论 -
JavaSE 集合框架(5)-HashMap和HashSet的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis...原创 2017-05-25 10:55:24 · 1462 阅读 · 0 评论 -
Java Collections Framework - 红黑树
红黑树在Java中的应用在Java集合类中,TreeMap和TreeSet的底层就是基于红黑树实现的,在JDK 1.8中如果HashMap和ConcurrentHashMap的某Bucket的链表的数量大于8,就会自动转换成红黑树结构,所以红黑树是一种应用很广的二叉查找树。红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。它虽然是...原创 2018-02-27 11:41:11 · 258 阅读 · 0 评论