![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA集合源码
野鸭丁真
这个作者很懒,什么都没留下…
展开
-
HashMap源码剖析
HashMap汇总1. HashMap是用于存储Key-Value键值对的集合;2. HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,So具有很快的访问速度,但遍历顺序不确定;3. HashMap中键key为null的记录至多只允许一条,值value为null的记录可以有多条;4. HashMap非线程安全,即任一时刻允许多个线程同时写HashMap,可能会导致数据的不一致。从整体结构上看HashMap是由数组+链表+红黑树(JDK1.8后增加了红原创 2021-09-15 18:10:08 · 90 阅读 · 0 评论 -
HashSet源码剖析
HashSet构造器private transient HashMap<E,Object> map;//默认构造器public HashSet() { map = new HashMap<>();//HashSet底层是HashMap}//将传入的集合添加到HashSet的构造器public HashSet(Collection<? extends E> c) { map = new HashMap<>(Math.max((原创 2021-09-15 16:01:31 · 71 阅读 · 0 评论 -
HashSet初识
面试重点:1.普通类构造的属性相同的对象可以重复,因为属性相同地址不同。2.String类构造的对象相同,在HashSet中重复不可以重复添加??????public class SetMethod { public static void main(String[] args) { Set<Object> set = new HashSet<>(); set.add(new dog("大黄")); set.add(.原创 2021-09-15 15:19:06 · 54 阅读 · 0 评论 -
Set常用方法
public class SetMethod { public static void main(String[] args) { Set<Object> set = new HashSet<>();//Set接口实现类的对象。 set.add("张三"); set.add("张三"); set.add("李白"); set.add(null); set.add(...原创 2021-09-15 14:37:33 · 76 阅读 · 0 评论 -
ArrayList和LinkedList的差别
ArrayList基于动态数组实现的非线程安全的集合;LinkedList基于链表实现的非线程安全的集合。对于随机index访问的get和set方法,一般ArrayList的速度要优于LinkedList。因为ArrayList直接通过数组下标直接找到元素;LinkedList要移动指针遍历每个元素直到找到为止。新增和删除元素,一般LinkedList的速度要优于ArrayList。因为ArrayList在新增和删除元素时,可能扩容和复制数组;LinkedList实例化对象需要时间外,只需要修改指...原创 2021-09-15 10:22:31 · 48 阅读 · 0 评论 -
LinkedList源码剖析
源码分析查找LinkedList 底层基于链表结构,无法向 ArrayList 那样随机访问指定位置的元素。LinkedList 查找过程要稍麻烦一些,需要从链表头结点(或尾节点)向后查找,时间复杂度为O(N)。相关源码如下:public E get(int index) {//index代表查找的元素所在位置 checkElementIndex(index); return node(index).item;}Node<E> node(int in...原创 2021-09-15 10:13:17 · 90 阅读 · 0 评论 -
Vector源码剖析
vector属性 //vector中的属性,用来存储数据的数组 protected Object[] elementData; //用来记录已经存储数据的个数 protected int elementCount; //扩容的大小,如果capacityIncrement<=0,默认扩为两倍。capacityIncrement>0就在原数组长度上加 //capacityIncrement protected int capacityIn...原创 2021-09-14 23:09:21 · 114 阅读 · 0 评论 -
List冒泡排序
import java.util.ArrayList;import java.util.List;/** * @author admin * @version 1.0.0 * @ClassName ListExercise.java * @Description TODO * @createTime 2021年09月12日 16:00:00 */public class ListExercise { public static void main(String[] a...原创 2021-09-12 16:28:26 · 667 阅读 · 1 评论 -
List常用方法
import jdk.nashorn.internal.runtime.arrays.ArrayLikeIterator;import java.util.ArrayList;import java.util.List;/** * @author admin * @version 1.0.0 * @ClassName ListMethod.java * @Description TODO * @createTime 2021年09月10日 18:23:00 */pu...原创 2021-09-10 18:55:07 · 58 阅读 · 0 评论 -
增强for循环(for each循环)
底层仍是迭代器可以通过断点加debug查看如何实现import java.util.ArrayList;import java.util.Collection;/** * @author admin * @version 1.0.0 * @ClassName CollectionFor.java * @Description TODO * @createTime 2021年09月10日 16:33:00 */public class CollectionFor { p.原创 2021-09-10 16:46:24 · 79 阅读 · 0 评论 -
迭代器遍历
显示IDEA中所有快捷键 ctrl+jimport java.util.ArrayList;import java.util.Collection;import java.util.Iterator;/** * @author admin * @version 1.0.0 * @ClassName CollectionIterator.java * @Description TODO * @createTime 2021年09月10...原创 2021-09-10 16:26:00 · 318 阅读 · 0 评论 -
Collection常用方法
import java.util.ArrayList;import java.util.List;/** * @author admin * @version 1.0.0 * @ClassName CollectionMethod.java * @Description TODO * @createTime 2021年09月10日 15:00:00 */public class CollectionMethod { public static void m...原创 2021-09-10 15:31:09 · 92 阅读 · 0 评论 -
集合体系汇总
Collection接口Map接口原创 2021-09-10 15:28:35 · 53 阅读 · 0 评论