集合类
hutongling
知行合一!
展开
-
Java 集合总结(Collection系列与Map系列)
Java 集合总结(Collection系列与Map系列)原创 2017-04-09 20:44:03 · 341 阅读 · 0 评论 -
并发包中的Queue
说到队列尤其是阻塞队列,不得不说jdk的并发包(Java.util.concurrent)中的相关数据结构,今天我们就来对java(JDK1.7)中的队列做一个总结。1、Queue队列接口,定义了队列基本的接口方法前两个方法是往队列塞数据,在队列空间不足的情况下add会抛出异常,而offer会返回false。poll和peek的区别是后者不会从队列中移除元素。2、BlockingQueue、Bloc转载 2017-04-30 20:54:46 · 1557 阅读 · 0 评论 -
Java中逆变与协变
看下面一段代码Number num = new Integer(1); ArrayList<Number> list = new ArrayList<Integer>(); //type mismatchList<? extends Number> list = new ArrayList<Number>();list.add(new Integer(1)); //errorlist.add转载 2017-04-28 16:22:14 · 404 阅读 · 0 评论 -
JDK7与JDK8中HashMap的实现
JDK7中的HashMapHashMap底层维护一个数组,数组中的每一项都是一个Entrytransient Entry<K,V>[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中; 而Map中的key,value则以Entry的形式存放在数组中static class Entry<K,V> implements Map.Entry<K,V> { fin转载 2017-04-28 16:19:08 · 271 阅读 · 0 评论 -
计算多项式之积
求两个多项式成绩: pa=an*x^n + an-1*x^(n-1) + …… + a0 pb=bm*x^m + bm-1*x^(m-1) + …… + b0 其中an,an-1…… a0,bm,bm-1……b0均为正数,范围[-10000,10000],0<=n,m<=1000. pa和pb的格式为“(-3,5),(87,4),(93,3),(3,0)”表示一个多项式-3x^5+87x^4原创 2017-04-18 11:24:32 · 1532 阅读 · 0 评论 -
Java 集合 4:TreeMap 的使用(不包括原理,仅仅是简单的使用 demo)
我们知道,HashMap 放入的 Entry 是没有顺序的,而 LinkedHashMap 是根据 put 的顺序或者是访问的顺序来排序,而不是根据 key 的大小来排序。那么 TreeMap 就有这样一个作用:根据 key 的大小进行排序。默认是升序的。TreeMap 源码注释的第一句就说了:A Red-Black tree based {@link NavigableMap} implement转载 2017-04-10 10:58:21 · 339 阅读 · 0 评论 -
Java 集合7:丰富的并发基础构建模块1 - 容器部分
目录:这一章主要介绍关于 Java 中同步并发的相关类,干货非常的多。介绍包括了:同步容器 1、Vector 2、HashTable并发容器 1、ConcurrentHashMap 2、CopyOnWriteArrayList同步容器效率低同步容器的概念就是说对容器状态的访问进行了串行化,来实现它们的安全性。这种串行的实现方法会严重的影响并发性能。例如 Vector 和 HashTable转载 2017-04-10 11:09:21 · 344 阅读 · 0 评论 -
Java 集合 6: WeakHashMap扩展知识1(原理与Reference相关)
前言 WeakHashMap 来实现了一个 LRU 缓存,这是一个比较顶层的具体使用,那么看下底层是如何实现的。WeakHashMap 中有一个成员变量比较关键:private final ReferenceQueue<Object> queue = new ReferenceQueue<>();对于 ReferenceQueue,里面有 Reference 类型的成员变量,这也是比较关键的一个类转载 2017-04-10 11:05:32 · 364 阅读 · 0 评论 -
Java 集合 5:HashSet ,TreeSet 实现原理
HashSetHashSet 实现了 Set 接口,而 Set 接口是继承于 Collection 接口,所以可以认为 Set 接口是 List 接口的兄弟。对于 Set 接口,如注释所说: * A collection that contains no duplicate elements. More formally, sets * contain no pair of elements <转载 2017-04-10 10:59:58 · 395 阅读 · 0 评论 -
Java 集合 3:LinkedHashMap工作原理及实现
LinkedHashMap 概述由于 HashMap 中的 entry 是无序的,也就是说,当 map.entrySet() 得到的 entry的集合既不能按照插入顺序排列,也不能按照访问先后顺序排序。那么 LinkedHashMap 就可以解决这个问题。LinkedHashMap 可以让元素:按照插入顺序排列 也可以按照访问的先后顺序排序这里需要注意,不能按照 key 的大小排序,那是 Tree转载 2017-04-10 10:55:51 · 335 阅读 · 0 评论 -
Java 集合 1:Collection,List,ArrayList,Vector,LinkedList(实现方式,对比)
Collection 与 ListCollection 是 Java 集合的一个根接口,JDK 没有它的实现类。 内部仅仅做 add(),remove(),contains(),size() 等方法的声明。List 接口是Collection 接口的一个子类,在Collection 基础上扩充了方法。同时可以对每个元素插入的位置进行精确的控制,它的主要实现类有 ArrayList,Vector,Li转载 2017-04-10 10:47:45 · 305 阅读 · 0 评论 -
Java 集合 2:HashMap(put方法的实现与哈希冲突)
HashMap 概念对于 Map ,最直观就是理解就是键值对,映射,key-value 形式。一个映射不能包含重复的键,一个键只能有一个值。平常我们使用的时候,最常用的无非就是 HashMap。HashMap 实现了 Map 接口,允许使用 null 值 和 null 键,并且不保证映射顺序。HashMap 有两个参数影响性能:初始容量:表示哈希表在其容量自动增加之前可以达到多满的一种尺度 加载因转载 2017-04-10 10:52:38 · 797 阅读 · 0 评论