从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • JavaSE

  • JavaSenior

    • 反射

    • 注解

    • 集合类

      • 集合介绍
        • 什么是集合
        • 数组能当集合用吗
      • List
      • Map
      • Set
      • Queue
      • Stack
      • Collections
    • Java
  • JavaEE

  • JavaWeb

  • Spring

  • 主流框架

  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • Java
  • JavaSenior
  • 集合类
2022-12-31
目录

集合介绍

# 00.集合介绍

接下来几篇文章,我们将介绍集合类,也算用的非常多的类了。

‍

# 什么是集合

什么是集合?集合就是一堆元素组成的整体,例如

  • 一个班的所有学生
  • 一个网站的所有商品(或者符合某些条件的商品)
  • 一个公司所有的客户

在工作中,我们经常需要处理集合,例如将一些商品从价格排序;筛选符合某些条件的客户……为此,Java引入了集合类。

‍

# 数组能当集合用吗

在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合。很显然,Java的数组可以看作是一种集合。但数组不方便:

  • 数组初始化后大小不可变;
  • 数组只能按索引顺序存取。

因此,我们需要其他的集合类来处理不同的数据,例如可变大小的链表,可以保证无重复的的集合。

‍

# Collection

Java标准库自带的java.util​包提供了集合类:Collection​,它是除Map​外所有其他集合类的根接口。Java的java.util​包主要提供了以下三种类型的集合:

  • List​:一种有序列表的集合,例如,按索引排列的Student​的List​;
  • Set​:一种保证没有重复元素的集合,例如,所有无重复名称的Student​的Set​;
  • Map​:一种通过键值(key-value)查找的映射表集合,例如,根据Student​的name​查找对应Student​的Map​。

‍

‍

Java集合的设计有几个特点:

  • 一是实现了接口和实现类相分离,例如,有序表的接口是List​,具体的实现类有ArrayList​,LinkedList​等,
  • 二是支持泛型,我们可以限制在一个集合中只能放入同一种数据类型的元素,例如:List<String> list = new ArrayList<>(); // 只能放入String类型​
  • 最后,Java访问集合总是通过统一的方式——迭代器(Iterator)来实现,它最明显的好处在于无需知道集合内部元素是按什么方式存储的。

‍

‍

由于Java的集合设计非常久远,中间经历过大规模改进,我们要注意到有一小部分集合类是遗留类,还有一些遗留接口,不应该继续使用:

  • Hashtable​:一种线程安全的Map​实现;
  • Vector​:一种线程安全的List​实现;
  • Stack​:基于Vector​实现的LIFO​的栈。
  • Enumeration<E>​:遗留接口,已被Iterator<E>​取代。
在GitHub上编辑此页 (opens new window)
上次更新: 2022/12/31 22:07:34
注解小结
List

← 注解小结 List→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式