Java集合面试汇总
文章平均质量分 81
Java集合面试汇总
@Autowire
这个作者很懒,什么都没留下…
展开
-
请你谈谈hashMap源码的理解?
Hash的底层是散列表,而在Java中散列表的实现是通过数组+链表:1构造方法在上面的构造方法最后一行,我们会发现调用了tableSizeFor(),我们进去看看:threshold这个成员变量是阈值,决定了是否要将散列表再散列。它的值应该是:capacity * load factor才对的。其实这里仅仅是一个初始化,当创建哈希表的时候,它会重新赋值的:2put方法我们来看看它是怎么计算哈希值的:我们一般来说直接将key作为哈希值不就好了吗,做异或运算是干嘛用的??我们是..原创 2021-09-01 19:45:10 · 176 阅读 · 1 评论 -
请你谈谈对ArrayList && Vector && LinkedList源码解读?
1ArrayList解析1.1 首先,我们来看一下ArrayList的属性:ArrayList底层其实就是一个数组,ArrayList中有扩容这么一个概念,正因为它扩容,所以它能够实现“动态”增长。1.2 我们来看看构造方法来印证我们上面说得对不对:1.3 add方法可以说是ArrayList比较重要的方法了,我们来总览一下:1 add(E e) public boolean add(E e) { ensureCapacityInternal(size + 1); //原创 2021-09-01 17:35:19 · 89 阅读 · 0 评论 -
深入理解Java中的List、Set与Map集合
list 和set 有共同的父类Collection ,set中不能有相同的元素 list中可以;map :使用键值对的方式来储存数据 键不能有重复的 值可以有;1 List 、Set、 Map都有哪些子类:Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└Set |-HashSet └TreeSet Map├Hashtable├HashMap└WeakHashMap需要注意的是:Map没有继承Col原创 2021-08-23 17:30:39 · 212 阅读 · 0 评论 -
请你谈谈对集合的理解?
1List的理解1ArrayList&&LinkedList的区别?数据结构实现:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实现。随机访问效率:ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数据存储方式,所以需要移动指针从前往后依次查找。增加和删除效率:在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为 ArrayList 增删操作要影原创 2021-07-31 23:15:27 · 690 阅读 · 1 评论 -
请你谈谈利用LinkedHashMap实现LRU算法缓存
1key和value都允许为空;2key重复会覆盖,value可以重复;3有序的;4LinkedHashMap是非线程安全的;1 LinkedHashMap可以认为是HashMap+LinkedList,也就是说,它使用HashMap操作数据结构,也用LinkedList维护插入元素的先后顺序. 2 LinkedHashMap的实现思想就是多态,理解LinkedHashMap能帮助我们加深对多态的理解.public class LinkedHashMap<K,V> extends H转载 2021-04-19 08:22:43 · 171 阅读 · 0 评论 -
哈希函数的构造、处理冲突的方法
1哈希函数的构造、处理冲突的方法哈希表的思想就是在待查记录的关键字值和它的存储位置之间建立一个确定的对应关系则查找时不必再进行关键字值间的比较。根据设定的哈希函数及处理冲突的方法将查找表中各数据元素存储在一段有限的连续空间中,即得哈希表。这里有两个比较重要得问题:哈希函数的构造、处理冲突的方法。2哈希函数的构造方法1、直接定址法直接根据数据的值来映射到地址,比如对数字10、11、12、13…可以将其映射到一块连续的内存中。2、数字分析法根据数据的某些数字(比如百位和十位数字)来映射到地址。原创 2021-03-16 07:26:50 · 365 阅读 · 0 评论 -
Java_Map(HashMap && TreeMap && Collections)
Map体系集合Map接口的特点:用于存储任意键值对(Key-Value)。键:无序、无下标、不允许重复(唯一)。值:无序、无下标、允许重复。特点:存储一对数据(Key-Value),无序、无下标,键不可重复。方法:V put(K key,V value)//将对象存入到集合中,关联键值。key重复则覆盖原值。Object get(Object key)//根据键获取相应的值。keySet//返回所有的keyCollection values()//返回包含所有值的Collection集原创 2021-02-25 19:09:32 · 150 阅读 · 0 评论 -
Java_Set(HashSet && TreeSet)
Set集合概述特点:无序、无下标、元素不可重复。方法:全部继承自Collection中的方法。import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 测试Set接口的使用 * 特点:1.无序,没有下标;2.重复(不能出现相同的) * 1.添加数据 * 2.删除数据 * 3.遍历【重点】 * 4.判断 */public class Test { public static原创 2021-02-25 14:09:37 · 93 阅读 · 1 评论 -
Java_List(ArrayList && LinkedList)
1集合(Collection)概念:对象的容器,定义了对多个对象进行操作的常用的方法。可实现数组的功能。集合和数组的区别:1数组长度固定,集合长度不固定;2数组可以存储基本类型和引用类型,集合只能引用类型。位置:java.util.*方法:boolean add(Object obj) //添加一个对象。boolean addAll(Collection c) //讲一个集合中的所有对象添加到此集合中。void clear() //清空此集合中的所有对象。boolean contains(原创 2021-02-25 10:07:56 · 137 阅读 · 0 评论