【Java学习笔记】:集合框架 · 初体验

简介: 在数学中,集合一般被定义为:由一个或多个确定的元素所构成的整体。而在Java中,集合就是可以将多个对象收集到一起,并作为一个对象而存储的容器。由于集合框架的设计必须是高性能的,允许不同类型的集合存在,并且扩展性高的。因此Java使用了标准接口来设计集合框架,我们可以直接使用这些接口的标准实现,也可以通过接口来实现自己的集合类。

1、写在前面

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

  • 集合框架

2、集合框架

2.1、简述

什么是集合框架?

在数学中,集合一般被定义为:由一个或多个确定的元素所构成的整体。而在Java中,集合就是可以将多个对象收集到一起,并作为一个对象而存储的容器。

由于集合框架的设计必须是高性能的,允许不同类型的集合存在,并且扩展性高的。因此Java使用了标准接口来设计集合框架,我们可以直接使用这些接口的标准实现,也可以通过接口来实现自己的集合类。

总的来说,Java集合框架提供了若干现成的数据结构以及算法,便于我们使用。也就是说,集合框架属于一套统一的体系结构,具体内容包括集合接口、接口的实现以及一系列操作集合的算法。

备注:

  • 集合接口:具有层次结构的抽象数据类型(ADT),它将操作和表示分离开。之所以定义多个接口,是为了以不同的方式操作集合对象
  • 集合实现:指的是集合接口的具体实现,属于可重用的数据结构。
  • 算法:对集合中的元素进行若干操作的对应算法,如排序、查找等。

另外,从Java5开始,集合框架就已经全部采用泛型实现了。而上述我们提到的集合接口以及类都是在java.util包中。


2.2、常用接口

(1)介绍

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

  • Collection:存储若干数据元素的集合。
  • Map:存储有映射关系元素的集合。

其中Collection又包含了三种常用的子接口:ListSet以及Queue


(2)主要接口

Collection接口

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

注意:

  1. Java不提供直接继承自Collection的类,只提供继承于Collection的子接口,比如Listset等。
  2. Collection声明时一个使用泛型,比如Collection<T>

Set接口

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

注意:

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

List接口

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

注意:

  1. 实现List接口的两个主要类是ArrayListLinkedList
  2. List接口在声明时应使用泛型,即List<T>

Queue接口

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


Deque接口

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


Map接口

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

备注:

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

2.3、常用类

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

3、写在最后

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

目录
相关文章
|
17天前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
17天前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
27天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
104 3
|
12天前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
25 3
|
22天前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
29 2
|
22天前
|
前端开发 Java 数据库连接
你不可不知道的JAVA EE 框架有哪些?
本文介绍了框架的基本概念及其在编程领域的应用,强调了软件框架作为通用、可复用的软件环境的重要性。文章分析了早期Java EE开发中使用JSP+Servlet技术的弊端,包括可维护性差和代码重用性低等问题,并阐述了使用框架的优势,如提高开发效率、增强代码规范性和可维护性及提升软件性能。最后,文中详细描述了几种主流的Java EE框架,包括Spring、Spring MVC、MyBatis、Hibernate和Struts 2,这些框架通过提供强大的功能和支持,显著提升了Java EE应用的开发效率和稳定性。
43 1
|
27天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
27 2
|
27天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
22天前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
40 0
|
4月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。