蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)( 二 )


文章图片
蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)
文章图片
蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)
文章图片
蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)
文章图片
蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)
文章图片
蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)

作为Java求职者 , 无数次被问到过集合的知识 , 同时作为一位\"周角公司小菜面试官” , 我也肯定会问面试者集合的知识 , 所以就有了这篇 , 源码较多 , 建议静下心来哈 , 一起学习 , 一起进步
面向对象语言对事物的体现都是以对象的形式 , 所以为了方便对多个对象的操作 , 需要将对象进行存储 , 集合就是存储对象最常用的一种方式 , 也叫容器 。
从上面的集合框架图可以看到 , Java 集合框架主要包括两种类型的容器
  • 一种是集合(Collection) , 存储一个元素集合
  • 另一种是图(Map) , 存储键/值对映射 。
Collection 接口又有 3 种子类型 , List、Set 和 Queue , 再下面是一些抽象类 , 最后是具体实现类 , 常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等 。
集合框架是一个用来代表和操纵集合的统一架构 。 所有的集合框架都包含如下内容:
  • 【蚂蚁花呗:阿里巴巴面试:Java 集合知识点(附图文解析)】接口:是代表集合的抽象数据类型 。 例如 Collection、List、Set、Map 等 。 之所以定义多个接口 , 是为了以不同的方式操作集合对象
  • 实现(类):是集合接口的具体实现 。 从本质上讲 , 它们是可重复使用的数据结构 , 例如:ArrayList、LinkedList、HashSet、HashMap 。
  • 算法:是实现集合接口的对象里的方法执行的一些有用的计算 , 例如:搜索和排序 。 这些算法被称为多态 , 那是因为相同的方法可以在相似的接口上有着不同的实现 。
说说常用的集合有哪些吧?Map 接口和 Collection 接口是所有集合框架的父接口:
  1. Collection接口的子接口包括:Set、List、Queue
  2. List是有序的允许有重复元素的Collection , 实现类主要有:ArrayList、LinkedList、Stack以及Vector等
  3. Set是一种不包含重复元素且无序的Collection , 实现类主要有:HashSet、TreeSet、LinkedHashSet等
  4. Map没有继承Collection接口 , Map提供key到value的映射 。 实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap 以及 Properties 等
ArrayList 和 Vector 的区别相同点:
  • ArrayList 和 Vector 都是继承了相同的父类和实现了相同的接口(都实现了List , 有序、允许重复和null)
  • 底层都是数组(Object[
    )实现的
  • 初始默认长度都为10
不同点: