Young Kbt blog Young Kbt blog
首页
  • 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
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

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

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

    • 收藏
    • 关于
    • Vue2-Admin (opens new window)
    • Vue3-Admin(完善) (opens new window)
GitHub (opens new window)

Shp Liu

朝圣的使徒,正在走向编程的至高殿堂!
首页
  • 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
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

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

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

    • 收藏
    • 关于
    • Vue2-Admin (opens new window)
    • Vue3-Admin(完善) (opens new window)
GitHub (opens new window)
  • Java 基础 - SE

  • Java 进阶 - SE

  • Java 集合 - Collection

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

  • Java 容器 - Web

  • Java 底层 - JVM

  • Java 版本 - 新特性

  • Java
  • Java 集合 - Collection
Young Kbt
2021-10-21
目录

Java 集合 - 集合概序

  • 为什么使用集合框架?
  • 集合框架包含的内容

# 为什么使用集合框架?

假设,一个班级有 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)
更新时间: 2024/11/02, 18:07:00
JavaSE - 反射
Java 集合 - ArrayList

← JavaSE - 反射 Java 集合 - ArrayList→

最近更新
01
技术随笔 - Element Plus 修改包名 原创
11-02
02
Reactor - 扩展性
11-02
03
Reactor - 最佳实践
11-02
更多文章>
Theme by Vdoing | Copyright © 2021-2024 Young Kbt | blog
桂ICP备2021009994号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式