java集合
千丈
越努力,越幸运。
展开
-
HashMap面试题
1. “你知道 HashMap 的工作原理吗?” “你知道 HashMap 的 get ()方法的工作原理吗?” “HashMap 是基于 hashing 的原理,我们使用 put (key, value)存储对象到 HashMap 中,使用 get (key)从 HashMap 中获取对象。当我们给 put ()方法传递键和值时,我们先对键调用 hashCode ()方法,返回的原创 2016-05-10 19:14:12 · 1350 阅读 · 0 评论 -
关于ArrayList的5道面试题
1、ArrayList的大小是如何自动增加的?你能分享一下你的代码吗? 这是最有技巧性的的一个问题,大多数人都无法回答。事实上,当有人试图在arraylist中增加一个对象的时候,Java会去检查arraylist,以确保已存在的数组中有足够的容量来存储这个新的对象。如果没有足够容量的话,那么就会新建一个长度更长的数组,旧的数组就会使用Arrays.copyOf方法被复制到新的数组中去,现有原创 2016-05-03 13:36:43 · 771 阅读 · 0 评论 -
AbstractSequentialList源码分析
此类提供了 List 接口的骨干实现,从而最大限度地减少了实现受“连续访问”数据存储(如链接列表)支持的此接口所需的工作。对于随机访问数据(如数组),应该优先使用AbstractList,而不是先使用此类。从某种意义上说,此类与在列表的列表迭代器上实现“随机访问”方法(get(int index)、set(int index, Object element)、set(int index, Obje原创 2016-05-04 14:26:21 · 467 阅读 · 0 评论 -
java为什么不直接实现Iterator接口,而是实现Iterable
Iterator是迭代器类,而Iterable是接口。好多类都实现了Iterable接口,这样对象就可以调用iterator()方法。 看一下JDK中的集合类,比如List一族或者Set一族,都是实现了Iterable接口,但并不直接实现Iterator接口。仔细想一下这么做是有道理的。 因为Iterator接口的核心方法next()或者hasNext原创 2016-04-20 15:07:55 · 2469 阅读 · 0 评论 -
AbstractCollection<E>源码解读
package java.util; //提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口所需的工作 public abstract class AbstractCollection implements Collection { //每个实现该抽象类的,需要提供一个空的构造函数 public AbstractCollection() { } //返回迭原创 2016-04-21 13:58:42 · 511 阅读 · 0 评论