"剖析面试最常见问题之Java集合框架" "说说List,Set,Map三者的区别?" "Arraylist 与 LinkedList 区别?" "补充内容:RandomAccess接口" "补充内容:双向链表和双向循环链表" "ArrayList 与 Vector 区别呢?为什么要用Arrayli ...
分类:
编程语言 时间:
2020-01-14 12:52:29
阅读次数:
84
HashMap HashMap 的重要性和面试问到的频率不言而喻,这篇文章我们就 HashMap 的原理和代码来进行分析。 什么是哈希表 讨论哈希表之前,我们先来把一些常用的数据结构的增删改查的性能比较一下。 数组 :采用一段连续的存储单元来存储数据。对与指定下标的查找和插入,其时间复杂度为 O(1 ...
分类:
编程语言 时间:
2020-01-12 22:17:25
阅读次数:
99
LinkedHashMap LinkedHashMap 是一个链表,哈希表,线程不安全的,允许 key 和 value 为 null。 它继承自 HashMap ,实现了 Map 接口,内部维护了一个双向链表。每次插入数据或者访问,修改数据时,会增加节点或者调整链表的节点顺序,以决定迭代输出的顺序。 ...
分类:
编程语言 时间:
2020-01-12 22:08:44
阅读次数:
96
Deque 双端队列,既可以当队列使用,也可以当栈使用。是一个接口。我们来看看 Deque 当作栈和队列时对应的方法。 队列: | Queue Method | Equivalent Deque Method | 说明 | | | | | | | | 向队尾插入元素,失败则抛出异常 | | | | ...
分类:
编程语言 时间:
2020-01-12 21:57:31
阅读次数:
81
阻塞队列 如果我们想要在线程安全的场景下使用队列,只有两个选择,一个是上面讲过的 ConcurrentLinkedQueue,还有就是我们要将的阻塞队列。 从名字我们就可以判断出阻塞队列适用的场景,那就是生产者消费者模式。阻塞对垒的添加和删除操作在队列满或者空的时候会被阻塞。这就保证了线程安全。 阻 ...
分类:
编程语言 时间:
2020-01-12 21:50:31
阅读次数:
74
TreeMap 1. TreeMap 实现了 NavigableMap 接口,而 NavigableMap 接口继承自 SortedMap 接口,所以 TreeMap 是有序的。 2. TreeMap 底层是红黑树,所以时间复杂度为 log(n)。 3. TreeMap 并不是线程安全的。 4. T ...
分类:
编程语言 时间:
2020-01-12 21:47:35
阅读次数:
79
ConcurrentHashMap ConcurrentHashMap 是一个能够保证线程安全的 。 为什么使用concurrentHashMap HashTable 是一个典型的 。虽然 HashTable 的所有方法都用 synchronzied 修饰,但是如果我们编程时将 get 和 put ...
分类:
编程语言 时间:
2020-01-12 21:39:34
阅读次数:
78
Java集合框架 工具类Collections Collections是一个类,容器的工具类,就如同Arrays是数组的工具类 步骤 1 : 反转 reverse 使List中的数据发生翻转 package collection; import java.util.ArrayList; import ...
分类:
编程语言 时间:
2019-12-13 12:00:38
阅读次数:
90
Kotlin是一种在Java虚拟机上执行的静态型别程式语言,它也可以被编译成为JavaScript原始码。它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的程式语言,其名称来自于圣彼得堡附近的科特林岛。[3]2012年1月,著名期刊《Dr. Dobb's Journal》中Kotlin ...
分类:
移动开发 时间:
2019-12-13 09:17:12
阅读次数:
139
Java8新增了java.util.funcion包,里面包含常用的函数接口,这是Lambda表达式的基础,Java集合框架也新增部分接口,以便与Lambda表达式对接。 Collections中的常用函数接口 Java集合框架的接口继承结构: 上图中蓝色标记和橙色标记的接口类,表示在Java8中加 ...
分类:
编程语言 时间:
2019-12-12 13:11:24
阅读次数:
97