java容器
文章平均质量分 95
xushiyu1996818
这个作者很懒,什么都没留下…
展开
-
java TreeMap和LinkedHashMap理论总结
TreemapTreemap简介在Map集合框架中,除了HashMap以外,TreeMap也是我们工作中常用到的集合对象之一。与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序;不同于HashMap的哈希映射,TreeMap底层实现了树形结构,至于具体形态,你可以简单的理解为一颗倒过来的树---根在上--叶在下。如果用计算机术语来说的话,TreeMap实现了红黑树的结..原创 2022-01-16 18:11:06 · 1010 阅读 · 0 评论 -
java HashMap理论总结
注意:本文参考docs/java/collection/java集合框架基础知识&面试题总结.md · SnailClimb/JavaGuide - Gitee.comHashMapHashMap 和 Hashtable 的区别1 线程是否安全:HashMap是非线程安全的,Hashtable是线程安全的,因为Hashtable内部的方法基本都经过synchronized修饰。(如果你要保证线程安全的话就使用ConcurrentHashMap吧!);2 效率:因...原创 2022-01-12 23:40:09 · 398 阅读 · 0 评论 -
java Set与Queue系列理论总结
注意:本文参考docs/java/collection/java集合框架基础知识&面试题总结.md · SnailClimb/JavaGuide - Gitee.comSet系列comparable 和 Comparator 的区别comparable接口实际上是出自java.lang包 它有一个compareTo(Object obj)方法用来排序comparator接口实际上是出自 java.util 包它有一个compare(Object obj1, Object ob...原创 2022-01-16 18:10:49 · 457 阅读 · 0 评论 -
java List系列理论总结
注意:本文参考 docs/java/collection/java集合框架基础知识&面试题总结.md · SnailClimb/JavaGuide - Gitee.comArraylist 和 Vector 的区别?ArrayList是List的主要实现类,底层使用Object[ ]存储,适用于频繁的查找工作,线程不安全 ;Vector是List的古老实现类,底层使用Object[ ]存储,线程安全的。Arraylist 与 LinkedList 区别?1 是...原创 2022-01-12 23:40:36 · 336 阅读 · 0 评论 -
java容器理论基础
注意:本文参考 docs/java/collection/java集合框架基础知识&面试题总结.md · SnailClimb/JavaGuide - Gitee.comJava 集合概览Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是Collecton接口,主要用于存放单一元素;另一个是Map接口,主要用于存放键值对。对于Collection接口,下面又有三个主要的子接口:List、Set和Queue。Java 集合框架如下图所示:注:图...原创 2022-01-12 23:40:54 · 286 阅读 · 0 评论 -
Java并发容器和框架
目录ConcurrentHashMap的实现原理与使用为什么要使用ConcurrentHashMap线程不安全的HashMap效率低下的Hash TableConcurrentHashMap的锁分段技术可有效提升并发访问率ConcurrentHashMap的结构ConcurrentHashMap的初始化初始化segments数组初始化segmentShift和s...原创 2019-12-29 11:18:41 · 357 阅读 · 0 评论 -
java容器 类TreeSet源码分析
目录简介字段 m,PRESENT构造函数5个iterator,descendingIterator,descendingSetsize,isEmpty,contains,add,remove,clear,addAllsubSet,headSet,tailSet,各2个,comparator,first,lastlower,floor,ceiling,highter...原创 2019-10-30 17:06:32 · 240 阅读 · 0 评论 -
java容器 接口NavigableSet源码分析
目录简介lower,floor,ceiling,higher,pollFirst,pollLastiterator,descendingSet,descendingIteratorsubSet,tailSet,headSet,各2个简介/** * SortedSet扩展了navigation方法,报告给定搜索目标的最接近匹配。 * 方法分别返回小于、小于或...原创 2019-10-30 11:59:31 · 518 阅读 · 0 评论 -
java容器 接口SortedSet源码分析
目录简介comparator,subSet,headSet,tailSetfirst,last,spliterator简介/** * 进一步提供其元素的总排序的集合。 * 元素使用它们的自然顺序排序,或者使用通常在创建已排序集时提供的比较器进行排序。 * 集合的迭代器将按升序元素顺序遍历集合。 * 还提供了几个额外的操作来利用排序。(此接口是SortedM...原创 2019-10-30 10:29:04 · 249 阅读 · 0 评论 -
java容器 类TreeMap源码分析
目录简介字段 comparator,root,size,modCountEntry类构造器4个查询方法 size,containsKey,containsValue,get,comparator,firstKey,lastKey查询的辅助方法 8个getXXXEntry和getEntryXXX ,successor,predecessorput方法简介...原创 2019-10-29 16:39:30 · 199 阅读 · 0 评论 -
java容器 接口NavigableMap源码分析
目录简介lowerXXX,floorXXX,ceilingXXX,higherXXX,总共8个firstEntry,lastEntry,pollFirstEntry,pollLastEntrydescendingMap,navigableKeySet,descendingKeySetsubMap,tailMap,headMap,每个2个简介/** * 一个So...原创 2019-10-28 15:34:01 · 321 阅读 · 0 评论 -
java容器 接口SortedMap源码分析
目录简介comparatorsubMap,headMap,tailMapfirstKey,lastKeykeySet,values,entrySet简介/** * 进一步提供其键的总排序的映射。 * 映射是根据其键的自然顺序排序的,或者由一个比较器(通常在已排序的映射创建时提供)来排序的。 * 这种顺序反映在遍历已排序映射的集合视图(由entrySet、k...原创 2019-10-25 16:42:59 · 408 阅读 · 0 评论 -
java容器 类HashTable源码分析
目录简介getput,addEntry,rehashremove简介/** * <p>这个类实现了一个散列表,它将键映射到值。任何非空对象都可以用作键或值。 * 注意:是非空对象可以作为key和value。hashmap是所有对象,包括null,可以作为key和value。 * * 要成功地从哈希表存储和检索对象,用作键的对象必须实现hashCo...原创 2019-10-25 14:24:40 · 157 阅读 · 0 评论 -
java容器 抽象类Dictionary源码分析
简介/** * Dictionary类是Hashtable,它将键映射到值。 * 每个键和值都是一个对象。在任何一个Dictionary对象中,每个键最多与一个值关联。 * 给定一个字典和一个键,就可以查找相关的元素。任何非空对象都可以用作键和值。 * * <p> * 作为一个规则,这个类的实现应该使用equals方法来确定两个键是否相同。 * <p>...原创 2019-10-25 14:13:41 · 231 阅读 · 0 评论 -
java容器 接口Enumeration源码分析
目录简介hasMoreElements,nextElement简介/** * 实现Enumeration接口的对象每次生成一个元素。对nextElement方法的连续调用将返回该系列的连续元素。 * * <p>例如,要打印一个Vector v的所有元素: * * <pre> * for (Enumeration<E&a...原创 2019-10-25 14:09:58 · 242 阅读 · 0 评论 -
java容器 类LinkedHashMap源码分析
目录简介节点类 Entry字段 head,tail,accessOrder内部工具方法 linkNodeLast,transferLinks覆盖HashMap的方法 reinitialize,newNode2个,replacement2个afterNodeXXX3个,internalWriteEntries,removeEldestEntry构造函数5个con...原创 2019-10-24 16:34:51 · 250 阅读 · 0 评论 -
java容器 类HashSet源码分析
目录简介字段 map,PRESENT构造函数5个查询 iterator,size,isEmpty,contains操作 add,remove,clearclone,readObject,writeObjectspliterator简介/** * 这个类实现Set接口,由一个散列表(实际上是一个HashMap实例)支持。 * 它不保证集合的迭代顺序;...原创 2019-10-22 16:22:04 · 228 阅读 · 0 评论 -
java容器 类HashMap源码分析
目录简介常量 默认初始容量,最大容量,默认负载因子,树化/反树化界限,最小树化容量节点类 Node静态的工具方法 hash(重要),comparableClassFor,compareComparables,tableSizeFor(较重要)字段 table,entrySet,size,modCount,threshold,loadFactor构造函数 4个(重要)...原创 2019-10-22 15:00:45 · 247 阅读 · 0 评论 -
java容器 抽象类AbstractMap源码分析
目录简介查询 size,isEmpty,containsKey,containsValue增删改查 get,put,remove批量操作 putAll,clear两个字段 keySet,valueskeySet,values方法的内部类通用方法 equals,hashCode,toString,clone,eq内部类 SimpleEntry内部类 Sim...原创 2019-09-16 14:42:14 · 187 阅读 · 0 评论 -
java 接口Iterable和Iterator 源码分析
目录Iterator简介hasNextnextremoveforEachRemainingIterableiteratorforEachspliteratorIteratorSpliterator简介数据结构构造方法tryAdvance和forEachRemainingtrySplit其他Iterator简介Itera...原创 2019-06-25 14:47:38 · 554 阅读 · 0 评论 -
java 工具类 Spliterators源码分析
目录简介构造方法内部类-各种spliterator子类IteratorSpliterator简介用于操作或者创建spliterator及基本特殊实例OfInt,OfLong,OfDouble的实例,的静态的类和方法。他其中的方法都是静态的方法,有很多内部类。构造方法可以看到唯一的构造方法是private,代表不能实例化这个类,只能调用它的静态方法...原创 2019-06-25 15:03:23 · 831 阅读 · 0 评论 -
java 接口Spliterator源码分析
目录Spliterator简介tryAdvanceforEachRemainingtrySplitestimateSizegetExactSizeIfKnowncharacteristics,hasCharacteristics,getComparator各种特征OfPrimitiveOfIntSpliterator简介public interfa...原创 2019-06-24 15:52:10 · 630 阅读 · 1 评论 -
java容器接口Collection源码分析
目录简介查询操作sizeisEmptycontainsiteratortoArray修改操作addremove批量操作containsAlladdAllremoveAllremoveIfretainAllclear比较和计算哈希equalshashCode流操作和分割器spliteratorstrea...原创 2019-08-08 21:17:37 · 292 阅读 · 0 评论 -
java容器 抽象类AbstractCollection源码分析
目录简介构造器抽象方法 size和iterator查询操作修改操作批处理toString简介/** * <p>这个类提供了Collection的一个骨骼似的实现,来最小化实现这个接口需要的工作。 * * <p>为了实现一个不可更改的collection,编程者仅仅需要扩展这个类,并提供iteratro和size方法的实现。...原创 2019-08-14 17:25:57 · 185 阅读 · 0 评论 -
java容器 接口List源码分析
目录简介查询操作- size,isEmpty,contains,iterator,toArray修改操作-add,remove批量修改操作-containsAll,addAll,removeAll,retainAll,replaceAll,sort,clear比较和哈希-equals,hashCode位置访问操作-get,set,add,remove查询操作-index...原创 2019-08-20 17:00:41 · 249 阅读 · 0 评论 -
java容器 接口RandomAccess源码分析
/** * List的实现类使用的标记接口,表示支持快速的随机访问(通常在常数时间内)。 * 接口的主要目的是允许通用的算法在应用于随机或者顺序访问列表时,改变它们的行为,来提供更好的性能 * * <p>操作随机访问列表(例如ArrayList)的最佳算法在应用于顺序访问列表(例如LinkedList)时会产生二次行为。 * 常用的列表算法被鼓励检查给定的数组是否ins...原创 2019-08-20 17:31:38 · 190 阅读 · 0 评论 -
java容器 接口ListIterator源码分析
目录简介查询操作(与next,prev相关的6个方法)修改操作(add,set,remove)简介/** * 一个对于列表的迭代器,允许编程者无论以哪个方向遍历列表,在迭代中修改列表,获取迭代器在列表中的实时位置。 * 一个ListIterator总是处于一个由 previous()返回的元素和next()返回的元素中间。 * 一个对于长度为n的列表,迭代器有n+...原创 2019-08-16 14:08:53 · 408 阅读 · 0 评论 -
java容器 抽象类AbstractList源码分析
目录简介构造器基于index的方法-两个add,get,remove,set查找元素-indexOf,lastIndexOf块操作-addAll,clear辅助操作-removeRange,rangeCheckForAdd,outOfBoundsMsg字段-modCount比较和哈希-equals,hashCode迭代器-Iterator,ListIterato...原创 2019-08-23 13:52:00 · 188 阅读 · 0 评论 -
java容器 类ArrayList源码分析
目录简介字段 capacity默认值,默认空数组,elementData数组,大小size构造函数 3个,无参,int,collection对数组大小的控制 trimToSize,ensureXXX(3个),grow,hugeCapacity查询操作 size,isEmpty,contains,indexOf,lastIndexOf克隆及生成数组 clone,toArray...原创 2019-08-29 14:54:13 · 287 阅读 · 0 评论 -
java容器 接口Queue源码分析
目录简介插入 add,offer删除头部元素 remove,poll返回头部元素 element peek简介/** * 用于在处理元素前保存元素的集合。 * 除了基本的Collection类的操作,queue提供了额外的插入,抽取和检查的操作。 * 它们的每个方法存在两个形式:如果操作失败,抛出异常。另个一个返回特殊值(null或者false,取决于操作)。...原创 2019-08-29 17:17:38 · 146 阅读 · 0 评论 -
java容器 接口Deque源码分析
目录简介双端队列的方法插入 addFirst,addLast,offerFirst,offerLast删除 removeFirst,removeLast,pollFirst,pollLast返回 getFirst,getLast,peekFirst,peekLast删除内部元素 removeFirstOccurrence,removeLastOccurrence队列的方...原创 2019-08-30 16:30:31 · 618 阅读 · 0 评论 -
java容器 抽象类AbstractSequentialList源码分析
目录简介构造器基于下标的方法 get,set,add,remove块操作 addAll(int,Collection)迭代器 Iterator和 ListIterator简介/** * <p>这个类提供了List接口的骨架似的实现,来最小化实现基于顺序访问元素(例如链表)的努力。 * 对于随机访问元素(例如一个数组),应该优先使用abstract...原创 2019-09-02 11:20:43 · 140 阅读 · 0 评论 -
java容器 类LinkedList源码分析
目录简介内部类 Node字段 size,first,last构造器 无参,Collection内部方法增加节点 linkFirst,linkLast,linkBefore删除节点 unlinkFirst,unlinkLast,unlink查找 node,checkXXXIndex,isXXXIndexQueue的方法 remove,element,offer,p...原创 2019-09-05 17:57:39 · 225 阅读 · 0 评论 -
java容器 接口Set源码分析
目录简介查询操作 size,isEmpty,contains返回元素 Iterator,toArray两个修改 add,remove批量操作 containsAll,addAll,removeAll,retainAll,clear其余 equals,hashCode,spliterator简介/** * <p>一个包含不重复元素的集合。 * ...原创 2019-09-06 17:47:54 · 372 阅读 · 0 评论 -
java容器 抽象类AbstractSet源码分析
目录简介构造器 方法 equals,hashCode,removeAll简介/** * <p>这个类提供了Set接口的骨架实现,来最小化实现这个接口的努力。 * * <p>通过继承这个类的过程来实现set,与继承AbstractCollection来实现Collection的过程一样, * 除了所有的方法和构造器必须遵守Set接口的额外规定...原创 2019-09-06 17:50:41 · 224 阅读 · 0 评论 -
java容器 接口Map源码分析
目录简介查询 size,isEmpty,containsKey,containsValue对key的增删改查 get,put,remove批量操作 putAll,clearEntry接口简介对key和value的操作 getKey,setValue,getValueequals,hashcode返回comparator comparingByKey两个,comp...原创 2019-09-12 15:18:29 · 204 阅读 · 0 评论 -
java容器和基础类源码分析总结
目录源码分析说明基础类和接口源码分析基本类基本接口函数式接口工具类java容器关系图Collection的子类源码分析CollectionListQueueSetMap的子类源码分析旧的容器类源码分析说明本次源码分析基本是基于JAVA_VERSION="1.8.0_112" 的jdk版本在eclipse写jdk注释的方法是...原创 2019-06-14 16:32:41 · 718 阅读 · 0 评论