IE盒子

搜索
查看: 105|回复: 2

【Java学习笔记】:集合框架

[复制链接]

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2023-1-13 18:51:18 | 显示全部楼层 |阅读模式
1、写在前面

大家好,今天文章的内容是:

  • 集合框架
2、集合框架

2.1、简述

什么是集合框架?
在数学中,集合一般被定义为:由一个或多个确定的元素所构成的整体。而在Java中,集合就是可以将多个对象收集到一起,并作为一个对象而存储的容器。
由于集合框架的设计必须是高性能的,允许不同类型的集合存在,并且扩展性高的。因此Java使用了标准接口来设计集合框架,我们可以直接使用这些接口的标准实现,也可以通过接口来实现自己的集合类。
总的来说,Java集合框架提供了若干现成的数据结构以及算法,便于我们使用。也就是说,集合框架属于一套统一的体系结构,具体内容包括集合接口、接口的实现以及一系列操作集合的算法。
备注:

  • 集合接口:具有层次结构的抽象数据类型(ADT),它将操作和表示分离开。之所以定义多个接口,是为了以不同的方式操作集合对象
  • 集合实现:指的是集合接口的具体实现,属于可重用的数据结构。
  • 算法:对集合中的元素进行若干操作的对应算法,如排序、查找等。
另外,从Java5开始,集合框架就已经全部采用泛型实现了。而上述我们提到的集合接口以及类都是在java.util包中。
2.2、常用接口

(1)介绍

具体来说,Java集合框架中的常用接口包括:

  • Collection:存储若干数据元素的集合。
  • Map:存储有映射关系元素的集合。
其中Collection又包含了三种常用的子接口:List、Set以及Queue。
(2)主要接口

Collection接口

Collection是最基本的集合接口,用于存储一组不唯一,无序的对象。
注意:

  • Java不提供直接继承自Collection的类,只提供继承于Collection的子接口,比如List和set等。
  • Collection声明时一个使用泛型,比如Collection<T>。
Set接口

Set接口扩展了Collection接口,并且禁止重复的元素。也就是说,Set不保存重复的元素,是一个不包含重复元素的集合。
注意:

  • 实现Set接口的两个主要类是HashSet和TreeSet
  • Set接口在声明时也应该使用泛型,即Set<T>
  • 有一种特殊的Set接口是SortedSet接口,其中的元素是有序排列的,并且增加了与次序相关的操作。实现SortedSet接口的主要类是TreeSet,SortedSet接口在声明时也是一样使用泛型,即SortedSet<T>
List接口

List接口是一个有序集合,其中的数据元素是按照有序排列的,并且可以重复。使用该接口能够准确控制数据元素的位置,List中的每个元素都有一个索引值,从零开始,用于表示元素在List中的位置。我们可以通过索引值来访问List中的元素。
注意:

  • 实现List接口的两个主要类是ArrayList、LinkedList等
  • List接口在声明时应使用泛型,即List<T>
<hr/>Queue接口

Queue接口也是一类比较经典的集合,是Java提供的队列实现。队列中的元素按照先进先出的规则进行存取,即新元素在队尾添加,并且只能从队列的头部进行移除元素。Queue接口在声明时应使用泛型,即Queue<T>
<hr/>Deque接口

Deque接口继承自Queue接口,是一个双向队列,它支持从队列的头、尾两端对数据元素进行插入、移除等操作。Deque接口的这种双向特性使得它可以作为栈集合(先进后出)来使用。Deque接口在声明时应使用泛型,即Deque<T>
<hr/>Map接口

Map接口是一个映射表集合,其存储的每个元素都是一对,以键值对(key➡value)的形式保存。Map中不能有重复的关键字,并且每个关键字最多只能映射到一个值。当我们需要通过关键字来实现对值的快速存取,那么最好的选择是Map。
备注:

  • Map接口在声明时应使用泛型,即Map<K, T>。其中K表示关键字,T表示Map中元素的数据类型。
  • 另外,SortedMap接口是一种特殊的Map接口,继承于Map,使Key保持在升序排列。
  • SortedMap接口在声明时应使用泛型,即SortedMap<K, T>。其中K表示关键字,T表示Map中元素的数据类型。
<hr/>2.3、常用类

常用类说明
ArrayList该类是实现了List接口的具体类,可存储任意类型的对象,其容量可根据需要自动扩充,在随机访问和遍历元素时效率较高
LinkedList该类通过双向链表数据结构实现了List和Deque接口,应用场景较为广泛。可将该类当做栈或者队列来使用,但查找效率较低
HsahMap该类实现了Map接口,按照键的HashCode值来存储键对象,访问速度较快,不支持线程同步。
HashSet该类是Set接口的典型实现,是无序且无重复元素的集合,其底层使用HashMap来保存所有元素,查询速度较快,但注意,HashSet不是线程安全的
TreeSet该类实现了Set接口,实现了有序的Set
ArrayDueue是一个基于数组实现的双端队列,按“先进先出”的方式操作集合元素
TreeMap继承了AbstractMap,使用了一棵树,可对键对象进行排序
3、写在最后

好了,文章的内容就到这里,感谢观看。
回复

使用道具 举报

0

主题

4

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2025-6-3 22:04:44 | 显示全部楼层
是爷们的娘们的都帮顶!大力支持
回复

使用道具 举报

1

主题

10

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 7 天前 | 显示全部楼层
沙发位出租,有意请联系电话:13838384381
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表