Java 基础 | Collection 集合概览

题图

老读者都知道,我是自学转行到 java 的。那时迫于生存压力,学得比较快,不少知识点仅停留在会用的层面。最近,光会用不知道原理,没什么意思。每次使用时都是机械性的 "熟练使用"。加之一直有回归基础的想法,因此想在业余时间复盘 java 的基础知识。知其然知其因此然是技术人的追求。java

说到复盘基础,并非全部的都会复盘,没那个时间更没那个必要。好比,一些基础的语法以及条件语句,极度简单。这类是不须要复盘的。思前想后,我以为整个计划应该从集合开始,而复盘的方式就是读源码。数组

一、Java 为何要有集合?

首先,java 是一门面向对象语言,操做对象是咱们的平常。既然操做就须要有东西把对象存储起来。因而容器就应运而生,初学者接触到的第一个容器就是数组,但这远远不够,根据不一样的对象以及不一样的业务,咱们须要用到不一样的容器。好比,不想要重复对象,咱们就会想到用 set 容器,想要对象有序咱们会用 List 。无论是 List、Set。他们都会有共性, 而 java 就根据这些共性,给咱们提供了 Collection 集合。数据结构

二、Collection 接口框架图

Collection

由上面的 Collection 接口框架图,咱们能够知道 Collection 是 List、Set、Queue 的父接口,看到这里,大家可能会问,Map 哪去了?其实,Java 中的容器,包括 Collection 和 Map ,Map 是另一个体系,因此咱们今天先不讲 Map 。框架

三、Collection 的方法

Collection

Collection 接口定义了以上待实现的方法。好比:spa

  • size() 计算容器长度
  • isEmpty() 是否为空
  • contains() 是否包含某个对象
  • containsAll() 是否包含另外一个集合的全部对象
  • iterator() 上层接口 iterable 的方法,用于生成迭代对象,遍历对象
  • add() 添加一个对象
  • add() 添加另外一个集合的全部对象
  • remove() 移除一个对象
  • removeAll() 移除全部对象
  • toArray() 把集合转换成数组
  • retainAll() 是否与另外一个集合有交集

四、List 子接口

List 集合的特色是元素有序、可重复,它包含了 ArrayList、Vendor 和 LinkedList 这三个实现类。三者比较以下:设计

List

五、Set 子接口

Set 集合最大的特色是不容许重复元素,它有 HashSet、TreeSet、LinkedHashSet 、EnumSet 四个实现类,对好比下:3d

Set

至于EnumSet 类,我还没研究过怎么使用,在网上查了下,它是专为枚举类设计的集合类,EnumSet 中的全部元素都必须是指定枚举类型的枚举值,具体的这里先不作介绍,待我研究下用法以及场景,再专门介绍。代理

六、Queue 子接口

Queue 用的很少,它经常使用于模拟队列这种数据结构,实现 FIFO 等数据结构。一般,队列不容许随机访问队列中的元素。在工做中,我尚未使用过,待我研究过,再来跟你们分享。对象

推荐阅读:

一、java | 什么是动态代理blog

二、SpringBoot | 启动原理

三、SpringBoot | 自动配置原理

一个优秀的废人

相关文章
相关标签/搜索