Java集合和Map详解:继承体系、实现原理和应用场景

版权申诉
0 下载量 151 浏览量 更新于2024-07-02 收藏 12.58MB DOCX 举报
JavaEE面试宝典共228页 Java基础知识点: 1.1 Collection和Map的继承体系 * Collection是Java中集合框架的根接口,提供了对集合的基本操作,如add、remove、contains等。 * Map是Java中映射框架的根接口,提供了对键值对的映射操作,如put、get、containsKey等。 * Collection和Map的继承体系中,ArrayList和LinkedList是Collection的实现类,HashMap是Map的实现类。 1.1.1 Collection接口 * Collection接口提供了对集合的基本操作,如add、remove、contains等。 * Collection接口的继承体系中,ArrayList和LinkedList是Collection的实现类。 1.1.2 Map接口 * Map接口提供了对键值对的映射操作,如put、get、containsKey等。 * Map接口的继承体系中,HashMap是Map的实现类。 1.1.3 ArrayList和LinkedList的区别 * ArrayList和LinkedList都是Collection接口的实现类,但它们有不同的特点。 * ArrayList的特点:查询速度很快,但是增删稍慢。线程不同步。删除一个元素后,该元素后面的所有元素前移。 * LinkedList的特点:增删速度很快,查询稍慢。线程不同步。 1.1.4 ArrayList底层实现 * ArrayList底层的实现就是一个数组(固定大小),当数组长度不够用的时候就会重新开辟一个新的数组,然后将原来的数据拷贝到新的数组内。 1.1.5 HashMap底层实现 * HashMap底层就是一个数组结构(Entry<K,V>[]table),可以看出,Entry就是数组中的元素,每个Map.Entry其实就是一个key-value对,它持有一个指向下一个元素的引用,这就构成了链表。 1.1.6 HashMap的工作原理 * HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。 * 当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。 * 当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。 * HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 1.1.7 List、Map、Set三个接口的特点 * List接口提供了对顺序集合的操作,如add、remove、get等。 * Map接口提供了对键值对的映射操作,如put、get、containsKey等。 * Set接口提供了对无序集合的操作,如add、remove、contains等。 Collection和Map是Java中集合框架的核心接口,ArrayList和LinkedList是Collection的实现类,HashMap是Map的实现类。了解它们的继承体系、特点和工作原理是非常重要的。