摘要:
HashMap 的 key 相等的条件是,条件 1 必须满足,条件2和3必须满足一个。 key 的 hash 值相等 内存中是同一个对象,即使用 == 判断 key 相等 key 不为 null, 且使用 equals 判断 key 相等 所以自定义类作为 HashMap 的 key,需要注意按照自 阅读全文
摘要:
Java中是使用泛型来约束 HashMap 中的key和value的类型的,HashMap<K, V> 泛型在Java的规定中必须是对象Object类型的,基本数据类型不是Object类型,不能作为键值 map.put(0, "ConstXiong")中编译器已将 key 值 0 进行了自动装箱,变 阅读全文
摘要:
使用 JDK中java.util.Collections 类,unmodifiable*** 方法赋值原集合。 当再修改集合时,会报错 java.lang.UnsupportedOperationException。从而确保自己定义的集合不被其他人修改。 public class TestColle 阅读全文
摘要:
ListIterator 继承 Iterator ListIterator 比 Iterator多方法 1) add(E e) 将指定的元素插入列表,插入位置为迭代器当前位置之前 2) set(E e) 迭代器返回的最后一个元素替换参数e 3) hasPrevious() 迭代器当前位置,反向遍历集 阅读全文
摘要:
Iterator 接口源码中的方法 java.lang.Iterable 接口被 java.util.Collection 接口继承,java.util.Collection 接口的 iterator() 方法返回一个 Iterator 对象 next() 方法获得集合中的下一个元素 hasNext 阅读全文
摘要:
首先说一下迭代器模式,它是 Java 中常用的设计模式之一。用于顺序访问集合对象的元素,无需知道集合对象的底层实现。 Iterator 是可以遍历集合的对象,为各种容器提供了公共的操作接口,隔离对容器的遍历操作和底层实现,从而解耦。 缺点是增加新的集合类需要对应增加新的迭代器类,迭代器类与集合类成对 阅读全文
摘要:
Vector Stack Hashtable java.util.concurrent 包下所有的集合类 ArrayBlockingQueue、ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque... 来一道刷了进BAT的面试题 阅读全文
摘要:
Queue 中 remove() 和 poll() 都是用来从队列头部删除一个元素。 在队列元素为空的情况下,remove() 方法会抛出NoSuchElementException异常,poll() 方法只会返回 null 。 JDK1.8 中的源码解释 /** * Retrieves and r 阅读全文
摘要:
Queue 中 element() 和 peek() 都是用来返回队列的头元素,不删除。 在队列元素为空的情况下,element() 方法会抛出NoSuchElementException异常,peek() 方法只会返回 null。 JDK1.8 中源码解释 /** * Retrieves, but 阅读全文
摘要:
Queue 中 add() 和 offer() 都是用来向队列添加一个元素。 在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false 。 JDK1.8 源码中的解释 /** * Inserts the specified e 阅读全文