阿星 精神时の屋 阿星 精神时の屋
首页
  • java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • 设计模式
  • 算法
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
GitHub (opens new window)

日暮途远

朝圣的使徒,正在走向编程的至高殿堂!
首页
  • java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • 设计模式
  • 算法
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
GitHub (opens new window)
  • Java基础 - SE

  • Java进阶 - SE

  • Java集合 - Collection

    • 集合概序
      • 为什么使用集合框架?
      • 集合框架包含的内容
    • ArrayList
    • LinkedList
    • Vevtor和Stack
    • List总结
    • HashMap
    • set
    • HashSet
    • TreeSet
    • 迭代器
    • 泛型
    • Collections工具类
  • Java并发 - JUC

  • Java容器 - Web

  • Java底层 - JVM

  • Java版本 - 新特性

  • Java
  • Java集合 - Collection
阿星
2021-10-21
目录

集合概序

# 为什么使用集合框架?

假设,一个班级有 30 个人,我们需要存储学员的信息,是不是我们可以用一个一维数组就解决了?

那换一个问题,一个网站每天要存储的新闻信息,我们知道新闻是可以实时发布的,我们并不知道需要多大的空间去存储,我要是去设置一个很大的数组,要是没有存满,或者不够用,都会影响我们,前者浪费的空间,后者影响了业务。

如果并不知道程序运行时会需要多少对象,或者需要更复杂的方式存储对象,那我们就可以使用 Java 的集合框架。

# 集合框架包含的内容

Java 集合框架提供了一套性能优良,使用方便的接口和类,他们位于 java.util 包中。

接口和具体类

graph TD
A ---> B[List接口]
A[Collection接口] ---> \C[set接口]

B --->  C[ArrayList]
B --->  /C[LinkList]
\C[set] ---> D[HashSet]
\C[set接口] ---> /D[TreeSet]
D[HashSet] ---> Y[LinkedHashSet]

E ---> F[HashMap]
F[HashMap] --> I[LinkedHashMap]
E ---> G[TresMap]
E[Map接口] ---> H[Hashtable]
1
2
3
4
5
6
7
8
9
10
11
12
13
14

图片:

算法

Collections 类提供了对集合进行排序,遍历等多种算法实现。

重中之重:

  • Collection 接口存储一组不唯一,无序的对象

  • List 接口存储一组不唯一,有序的对象

  • Set 接口存储一组唯一,无序的对象

  • Map 接口存储一组键值对象,提供 key 到 value 的映射

  • ArrayList 实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高

  • LinkedList 采用链表存储方式。插入、删除元素时效率比较高

  • HashSet 采用哈希算法实现的 Set,HashSet 的底层是用 HashMap 实现的,因此查询效率较高,由于采用 hashCode 算法直接确定元素的内存地址,增删效率也挺高的

编辑此页 (opens new window)
更新时间: 2023/07/04, 03:31:55
JavaSE - 反射
ArrayList

← JavaSE - 反射 ArrayList→

最近更新
01
自我 - 学习线 原创
07-05
02
自我 - 介绍 原创
03
Git - Commit 开发规范
更多文章>
Theme by Vdoing | Copyright © 2023-2023 阿星 | blog
MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式