当前位置: 首页 > news >正文

JAVA集合框架详解

在这里插入图片描述

1 顶层接口和抽象类

接口

  • 概念:抽象方法的集合,以interface声明。接口无法被实例化,但可以被实现(implements)。一个类可以实现多个接口。

抽象类

  • 概念:抽象类不能实例化对象,必须被继承(extends)才能被使用(非抽象子类才能被实例化),一个类只能继承一个抽象类。使用abstract class定义抽象类。
  • 抽象类中包含成员变量、成员方法和构造方法。
    • 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
    • 抽象类中的抽象方法只是声明,不包含方法体(方法的具体实现也就是方法的具体功能),抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

接口 & 抽象类

特性接口(Interface)(包含类要实现的方法)抽象类(Abstract Class)(描述对象的属性和方法)
关键字interfaceabstract class
继承关系类可以实现多个接口类只能继承一个抽象类
方法类型主要是抽象方法,Java 8+有默认方法可以有抽象方法和具体方法
成员变量只能是常量(public static final)可以是普通成员变量
构造方法不能有构造方法可以有构造方法
访问修饰符默认public各种访问修饰符都可以
设计目的定义行为契约提供代码复用和模板

1.1 Iterator 接口

  • 提供遍历集合的标准方式
  • 主要方法:hasNext(), next(), remove()

1.2 Collection 接口

  • 所有单列集合的根接口
  • 定义了对集合的基本操作,添加、删除、遍历等

1.3 Map 接口

  • 键值对集合的根接口

2 Collection的三个主要子接口

2.1 List接口

  • 有序集合,允许重复元素
  • 主要实现类:
    ArrayList:基于动态数组,随机访问快
    LinkedList:基于双向链表,插入删除快
    Stack:后进先出(LIFO)结构

2.2 Set 接口

  • 无序集合,不允许重复元素
  • 主要实现类:
    HashSet:基于哈希表,快速查找
    TreeSet:基于红黑树,元素有序
    LinkedHashSet:保持插入顺序的HashSet

2.3 Queue 接口

  • 队列,先进先出(FIFO)结构
  • 主要实现类:LinkedList也实现了Queue接口

3. Map 接口的主要实现类

HashMap

基于哈希表的Map实现
键值对无序,允许null键和null值

LinkedHashMap

保持插入顺序或访问顺序的HashMap

TreeMap

基于红黑树的Map实现
键按照自然顺序或Comparator排序

WeakHashMap

弱引用Map,当键不再被引用时会被垃圾回收

4. 抽象类和工具类

抽象类

AbstractCollection:Collection接口的骨架实现
AbstractList:List接口的骨架实现
AbstractSet:Set接口的骨架实现
AbstractMap:Map接口的骨架实现
AbstractSequentialList:顺序访问列表的骨架实现

工具类

Collections:集合工具类,提供排序、查找、同步化等方法
Arrays:数组工具类,提供数组操作的各种方法

5. 排序相关接口

Comparable 接口

自然排序接口,对象实现此接口定义自然顺序

Comparator 接口

比较器接口,用于定义定制排序规则

6. 重要关系说明

// 继承关系示例
ArrayListAbstractListAbstractCollectionCollection
HashSetAbstractSetAbstractCollectionCollection
HashMapAbstractMapMap// 实现关系示例
ArrayList implements List
HashSet implements Set
HashMap implements Map

7. 使用场景总结

Java数据结构java.util.*: Arrays, Lists, Sets, Maps, Stack, Queue, Heap, Trees, Graphs

集合类型特点适用场景
ArrayList动态数组,随机访问快需要频繁按索引访问
LinkedList双向链表,插入删除快需要频繁在头尾操作
HashSet哈希表,快速查找需要快速判断元素是否存在
TreeSet红黑树,元素有序需要有序且去重的集合
HashMap键值对,快速查找需要通过键快速查找值
TreeMap键有序的Map需要按键排序的映射
http://www.dtcms.com/a/473723.html

相关文章:

  • svn and maven 自动部署shell脚本
  • 电影网站如何做长尾关键词网站建立需要什么技术
  • 网站制作英文版网站肥西县建设局资询网站
  • 腾讯开源80B参数混元图像3.0模型:AI作画正在“拥有大脑”
  • HTTP 的方法和状态码
  • 废品网站怎么做wordpress 评论 顶踩 心 插件
  • 用AI重构HR Tech:绚星绚才,将HR专业能力转化为业务增长引擎
  • R绘制股票日波动线图 中国海油600938
  • Mysql和MyBatis的缓存机制
  • 免费建站系统官网上海seo有哪些公司
  • Linux系统--进程间通信--共享内存(主使用)
  • BOOST电路的一些小理解
  • JavaWeb登录模块完整实现解析:从前端点击到后端验证的全流程
  • 【pytorch】合并与分割
  • 从AI画稿到3D虚拟时装:Illustrator与Substance 3D的服装设计工作流
  • 【VGGT-X】:尝试将VGGT用到3DGS重建中去
  • 海珠区建设和水务局网站网站建设夜猫
  • 用 Go 优雅应对网络抖动与断线重连:打造健壮的网络应用
  • C++ : 智能指针的补充和特殊类的设计
  • 【完整源码+数据集+部署教程】 航拍水体检测图像分割系统源码和数据集:改进yolo11-DLKA
  • 公司查询网站查询系统景点介绍网站开发设计
  • 如何定位 TCP TIME_WAIT ,并优化这个问题
  • DDD记账软件实战四|从0-1设计实现企业级记账微服务
  • 考研408《计算机组成原理》复习笔记,第七章(1)——I/O接口
  • 建设部网站在哪里报名考试大德通网站建设
  • Java 泛型基础:从类型安全到泛型类 / 方法 / 接口全解析
  • git 绑定多个远程仓库指定推送场景
  • 前端学习2:学习时间3-4小时
  • setup与选项式API
  • 后端开发是什么:从服务器到数据库