集合学习
文章平均质量分 70
dreaml9527
这个作者很懒,什么都没留下…
展开
-
Map集合学习第一天
前面学习HashSet的时候,已经说过了,HashSet的底层就是HashMap,但是前面的键值对<key,value>,其中key是增加的元素,而value是一个PRESENT。中PRESENT这个就是一个静态final常量,类型为object类型public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}而现在学习的map集合,保存的数据是映射关系Key-原创 2021-09-25 23:51:49 · 142 阅读 · 0 评论 -
Set集合学习结束
LinkedHashSet是HashSet的子类LinkedHashSet的底层是LinkedHashMap,而LinkedHashMap是HashMap的一个实现类。底层维护是一个数组加双向链表。LinkedHashMap它是根据hashcode值来决定元素的存储位置,由于使用了双向链表,所以看起来像元素插入的顺序保存的。所以插入和取出的元素位置一致。同样由于LinkedHashSet是继承Set集合,所以不允许添加重复的元素。实际上LinkedHashSet和HashSet的实现原理原创 2021-09-24 15:54:21 · 112 阅读 · 0 评论 -
List集合学习结束
Vector底层分析Vector底层是一个对象数组,同时线程是同步的,也是安全的,主要是Vector的操作方法都有synchronized修饰。如果需要操作多条线程同步安全时,考虑用Vector。向Vector中增加三个元素。Vector vector = new Vector();初始化的时候,无参它是默认创造一个大小为10的容量数组。满了之后按2倍扩容。public class study { public static void main(String[] args)原创 2021-09-23 14:30:32 · 75 阅读 · 0 评论 -
Set集合学习第一天
set集合存储进去它是无序的,增加取出的顺序不一样,没有索引,不允许重复元素,所以最多包含一个null.因为其没有索引,所以它只能通过迭代器或者是增强for循环来遍历集合。下面这个是一个HashSet 集合,向里面增加三个对象,分别是Java,psh,java,其中java是重复的,所以输出集合中的元素为:java,pshpublic class Hashsetstudy { public static void main(String[] args) { Has原创 2021-09-22 23:30:09 · 226 阅读 · 0 评论 -
list集合学习第二天
List继承了Collection,而ArrayList Vector LinkedList 它们三个继承了List,也继承了List.LinkedList实现方式为双向链表,双端队列,可以增加任意元素,而且可以重复,包括null同样LinkedList线程是不安全的,没有实现同步,和ArrayList一样。但是由于各自有优点。 底层结构 增删效率 改查效率 ArrayList 自增数组 较低 较高 ...原创 2021-09-22 00:02:16 · 119 阅读 · 0 评论 -
List集合源码学习第一天
通常情况下,我们要操作几个数据的时候想到的是数组,但是由于数组它的容量大小是固定,而我们想要的是动态可增长的数组,所以,可以使用java中的集合类,实际上,集合类的底层也是数组写的。类型object类型今天学习的是集合中的Arraylist定义: public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Seriali.原创 2021-09-19 16:56:19 · 101 阅读 · 0 评论