资讯专栏INFORMATION COLUMN

Java 基础 | Collection 集合概览

codergarden / 3042人阅读

摘要:说到复盘基础,并不是所有的都会复盘,没那个时间更没那个必要。比如,一些基础的语法以及条件语句,极度简单。思前想后,我觉得整个计划应该从集合开始,而复盘的方式就是读源码。通常,队列不允许随机访问队列中的元素。

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

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

1、Java 为什么要有集合?

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

2、Collection 接口框架图

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

3、Collection 的方法

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

size() 计算容器长度

isEmpty() 是否为空

contains() 是否包含某个对象

containsAll() 是否包含另一个集合的所有对象

iterator() 上层接口 iterable 的方法,用于生成迭代对象,遍历对象

add() 添加一个对象

add() 添加另一个集合的所有对象

remove() 移除一个对象

removeAll() 移除所有对象

toArray() 把集合转换成数组

retainAll() 是否与另一个集合有交集

4、List 子接口

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

5、Set 子接口

Set 集合最大的特点是不允许重复元素,它有 HashSet、TreeSet、LinkedHashSet 、EnumSet 四个实现类,对比如下:

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

6、Queue 子接口

Queue 用的不多,它常用于模拟队列这种数据结构,实现 FIFO 等数据结构。通常,队列不允许随机访问队列中的元素。在工作中,我还没有使用过,待我研究过,再来跟大家分享。

推荐阅读:

1、java | 什么是动态代理

2、SpringBoot | 启动原理

3、SpringBoot | 自动配置原理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76008.html

相关文章

  • Java 性能调优指南之 Java 集合概览

    摘要:单线程集合本部分将重点介绍非线程安全集合。非线程安全集合框架的最新成员是自起推出的。这是标准的单线程阵营中唯一的有序集合。该功能能有效防止运行时造型。检查个集合之间不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【编者按】本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型。文章系国内 ITOM 管理平台 O...

    gnehc 评论0 收藏0
  • Java快速扫盲指南

    摘要:不相等的对象要具有不相等的哈希码为了哈希表的操作效率,这一点很重要,但不是强制要求,最低要求是不相等的对象不能共用一个哈希码。方法和方法协同工作,返回对象的哈希码。这个哈希码基于对象的身份生成,而不是对象的相等性。 本文面向 刚学完Java的新手们。这篇文章不讲语法,而是一些除了语法必须了解的概念。 将要去面试的初级工程师们。查漏补缺,以免遭遇不测。 目前由于篇幅而被挪出本文的知识...

    Tony_Zby 评论0 收藏0
  • Java™ 教程(集合接口)

    集合接口 核心集合接口封装了不同类型的集合,如下图所示,这些接口允许独立于其表示的细节来操纵集合,核心集合接口是Java集合框架的基础,如下图所示,核心集合接口形成层次结构。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一种特殊的Collection,SortedSet是一种特殊的Set,依此类推,另请注意,层次结构...

    elisa.yang 评论0 收藏0
  • 集合总结

    摘要:当使用迭代器访问集合元素时,中的元素不能被改变,只能通过的方法删除上一次方法返回的集合元素才可以否则将会引发异常。可以确保集合元素处于有序状态。返回中所有键值对组成的视图,每个集合元素都是是的内部类对象。这种集合称为视图。 1.集合概览 集合包括两大接口:Collection 和 Map。 Map TreeMap HashMap LinkedHashMap Collecti...

    yanbingyun1990 评论0 收藏0
  • 集合Collection总览

    前言 声明,本文使用的是JDK1.8 从今天开始正式去学习Java基础中最重要的东西--->集合 无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的资料,下面未必就做到日更了... 当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~ 一、集合(Collection)介绍 1.1为什么需要Collection Java是一门面向对象的语言,...

    FullStackDeveloper 评论0 收藏0

发表评论

0条评论

codergarden

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<