![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java集合
文章平均质量分 68
阿福66
这个作者很懒,什么都没留下…
展开
-
Java面试题
采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。java.util.concurrent包下的容器都是安全失败,可以在多线程下并发使用,并发修改。原理:由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭代器检测到,所以不会触发Concurrent Modification Exception。缺点。原创 2023-10-06 00:57:09 · 180 阅读 · 0 评论 -
HashMap面试题
Hash 值的范围值比较大,使用之前需要先对数组的长度取模运算,得到的余数才是元素存放的位置也就是对应的数组下标。这个数组下标的计算方法是。将HashMap的长度定为2 的幂次方,这样就可以使用位运算代替%取余的操作,提高性能。// 容纳键值对的最大值// 负载因子int size;Node[] table的初始化长度length为16,默认的loadFactor是0.75,0.75是对空间和时间效率的一个平衡选择,根据泊松分布,loadFactor 取0.75碰撞最小。原创 2023-10-02 23:03:23 · 876 阅读 · 0 评论 -
java集合
foreach遍历的时候删除元素会导致数组删除失败,可以使用迭代器的remove()方法。1.Arraylist 基于数组实现的,linkedList基于链表实现的。原创 2023-09-30 00:15:52 · 174 阅读 · 0 评论 -
ArrayList 的扩容机制
创建用户自定义长度的数组ArrayList扩容的核心从ensureCapacityInternal方法说起。可以看到前面介绍成员变量的提到的ArrayList有两个默认的空数组:**DEFAULTCAPACITY_EMPTY_ELEMENTDATA:**是用来使用默认构造方法时候返回的空数组。如果第一次添加数据的话那么数组扩容长度为DEFAULT_CAPACITY=10。原创 2023-09-27 07:56:09 · 120 阅读 · 0 评论 -
Java集合
ArrayList 继承了 AbstractList ,并实现了 List 接口。派生出来的,Collection有三个子接口:List、Set、Queue。的底层是动态数组,它的容量能动态增长。map集合是一个键值对的集合,可以存一个key,一个value。Queue集合就是队列,先进先出的数据结构,栈是。list集合是有序可重复的接口。set集合是无序序可重复的接口。list集合是有序可重复的接口。set集合是无序序可重复的接口。Java集合类主要由两个接口。集合体系中常用的实现类有。原创 2023-09-24 23:46:30 · 131 阅读 · 0 评论