java集合框架(一)——框架结构及基础接口

2023-11-19

java.util包是一个重要的包,包含许多类和接口,它还包括java的一个功能强大的子系统——集合框架,集合框架是一个复杂接

口和类的层,提供了管理对象组的优化技术。

使用集合框架的目的有几个,首先这种框架必须是高性能的,基础集合(动态数组、链表、树、哈希表)的实现是高效率的,

其次,框架允许以不同类型的集合以相似的方式进行操作,并且有高度的互用性,再次,必须很容易扩展和改变一个集合。所以集合

被设计为一系列接口,其概图如下:

支持集合框架的接口总结于下表:

1、Collection接口

Collection是构造集合框架的基础,collection是一个泛型接口,它必须被定义集合的任意类实现,它扩展了iterable接口,

学习它的方法有助于理解框架


                        boolean add(Object obj):向集合中添加一个元素。
                        boolean addAll(Collection c):向集合中添加一个集合的元素。
                        void clear():删除集合中所有的元素。
                        boolean remove(Object obj):删除集合中指定的元素。
                        boolean removeAll(Collection c):删除集合中指定的集合元素。
                        boolean isEmpty():判断集合是否为空。
                        boolean contains(Object obj):判断集合是否包含指定的元素。
                        boolean containsAll(Collection c):判断集合是否包含指定的集合中的元素。
                        Iterator iterator():迭代器。
                                hasNext():判断是否还有元素
                                next():获取下一个元素
                        boolean retainAll(Collection c):判断集合中是否有相同的元素。
                        Object[] toArray():把集合变成数组。

2、List接口

List接口扩展了collection,并声明集合的行为是存储一个序列的元素,使用基于零的索引,可以把元素插入到列表中或

者访问元素

相比较于collection,list的add(int a),可以将元素插入到特定位置

E get(int index)

e set(int index) 读取和设置元素

int indexof(obj)

int lastindexof(obj) 查找元素第一次或最后一次出现的位置

list<e> sublist(int start,int end) 截取子list

3、Set接口

set接口扩展了collection接口,并且声明该集合不允许存在相同的元素,它没有定义自己的方法

4、SortedSet接口

SortedSet接口扩展了Set接口并且声明自己是升序的集合,除了Set接口的方法,他还声明了自己的方法

Comparator<? super E> comparator() 返回排序的比较函数

E first() 返回排序集合的第一个元素

E last() 返回排序集合的最后一个元素

SortedSet headset(int end) 返回位置小于end的元素

5、Queue接口

它扩展了Collection接口,声明一个队列行为

E element() 返回队列顶部的元素

boolean offer(E obj) 尝试添加一个元素

E peek

E poll

E remove


只有两种方法可以获得被删除元素,poll和remove,区别在于,如果队列为空,poll返回null,remove抛出异常

有两种方法能够获得但不删除元素,peek和element,区别在于,如果队列为空,peek返回null,element抛出异常




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java集合框架(一)——框架结构及基础接口 的相关文章

随机推荐

  • 用户的计算机名,获取计算机名及用户名

    ifdef WINDOWS uses Windows endif ifdef UNIX uses BaseUnix endif ifdef UNIX function GetUserName String begin Result GetE
  • docker介绍

    公式 Usage docker OPTIONS COMMAND A self sufficient runtime for containers Options config string Location of client config
  • Ipv4学习笔记之实践篇

    什么是IP 学习IP是入门网络的第一步 要想了解网络的工作原理 首先要了解的就是IP协议 IP standards for Internet Protocol 也就是说IP是Internet Protocol的缩写 是internet通信协
  • 【Termux Python3.11开发】安装opencv-contrib-python后终于可以尝鲜airtest,poco

    无意看到airtest的一些介绍 正好在找一些工具 Python自动化的轮子 好放在Termux环境下进行测试效果如何 经过一些时间的折腾 总算顺利解决 安装好几个相关的库 点击链接加入群聊 Termux友情赞助群 897177804 pi
  • uniapp小程序跳转其他小程序uni.navigateToMiniProgram效果demo(整理)

    放点击事件里面即可 uni navigateToMiniProgram appId 跳转的小程序的aooId path pages index index id 123 如果这里不填 默认是跳转到对方小程序的主页面 extraData 需要
  • 无人机+三维实景建模助力古建筑保护,传承历史记忆

    历史文化建筑 承载着过去各个时代的文化记忆 无论是保存还是修缮古建筑 都需要将其基本信息进行数字化建档 为修缮提供精准参考 根据住建部的要求 从2020年开始到2022年 全国需完成历史建筑100 测绘及系统录入工作 并且明确鼓励采用摄影测
  • iOS-根据系统语言更改App名称或其他配置

    要求 要根据系统的语言更改app的名字 解决方案 在xcode中进行打包前的配置 我用的是xcode11版本 一 Bundle display name 可以通过直接修改Bundle display name来确定app的名称 Bundle
  • 用云服务器搭建虚拟主机,如何用云服务器搭建虚拟主机

    如何用云服务器搭建虚拟主机 内容精选 换一换 在云服务器上搭建网站后 部分客户通过本地网络访问网站时出现偶发性无法访问的情况 确认客户使用的本地网络 若客户的本地网络是NAT网络 本地主机通过NAT功能使用公网IP地址访问弹性云服务器 可能
  • Windows 11开启硬件加速后出现的黑屏、闪屏(如Edge浏览器、照片)问题的两种解决方案

    2022年3月21日更新 若只有Edge出现闪屏问题 可跳到下方查看原文章 若其他软件也出现闪屏问题的话 可能是Intel核显驱动的问题 可以到Intel官网搜索相应的驱动程序 不要下载最新版 core 6 11代驱动下载地址 https
  • Verilog之assign

    Verilog中的关键词assign主要用于如下两个地方 数据流建模 用于数据流建模的显示连续赋值语句语法格式如下
  • 【数学建模】随机森林预测(Python代码实现)

    目录 1 参数 2 算例实现 2 1 算例 2 2 单目标预测 DecisionTreeRegressor 2 3 多目标预测MultiOutputRegressor 1 参数 n estimators 森林中决策树的数量 默认100 表示
  • Oracle 查询技巧与优化(二) 多表查询

    前言 上一篇blog介绍了Oracle中的单表查询和排序的相关技巧 http blog csdn net wlwlwlwl015 article details 52083588 本篇blog继续介绍查询中用的最多的 多表查询的技巧与优化方
  • VM装MACos

    准备工具 下载macOS Ventura 13 ISO镜像文件 VMware Workstation Pro最新版并激活 自行官网下载即可 需要镜像和key可以最下边的云盘自取 下载Unlocker for VMware Workstati
  • JAVA多线程介绍

    1 什么是多线程 得益于计算机的时间片机制 每一个应用程序的都可以在一段很小的时间段内执行 相比于单线程串行执行 得不到时间片就停止执行 多线程当中线程1得不到时间片 线程2有可能得到 可以更多的完成任务 还有一种场景 单线程要操作IO设备
  • Charles微信小程序抓包(详解)

    一 Charles官网下载安装包 https www charlesproxy com download latest release 官网下载不了的可去百度网盘获取 链接 https pan baidu com s 1NMqiGPLtEP
  • 最短路径-C++算法

    C 算法之 最短路径 基础2 2020版 前记 通过前面那份讲义 你应该对基础知识有所了解 今天我们来看下floyed算法的实现 复习 什么是最短路径 百度中的定义 用于计算一个节点到其他所有节点的最短路径 主要特点是以起始点为中心向外层层
  • Mixed Reality Toolkit-Unity 开发系列—Input 模块

    在 Mixed Reality Toolkit Unity 开发系列 Sharing 模块 中 我们首次开讲 HoloLens 开发神器 微软原生开发包 Mixed Reality Toolkit Unity 简称 MRTK 并介绍了 Sh
  • 如何拿到半数面试公司Offer——我的Python求职之路

    从八月底开始找工作 短短的一星期多一些 面试了9家公司 拿到5份Offer 可能是因为我所面试的公司都是些创业性的公司吧 不过还是感触良多 因为学习Python的时间还很短 没想到还算比较容易的找到了工作 就把这些天的面试经验和大家分享一下
  • c++ 链表的创建与链表常见操作

    c 链表的创建与链表常见操作 一 链表定义 struct 下面的结构体定义了C 语言中的一种常见的链表节点 包括数据 指针和两种种不同类型的构造函数 struct ListNode int val 存储数据 ListNode next ne
  • java集合框架(一)——框架结构及基础接口

    java util包是一个重要的包 包含许多类和接口 它还包括java的一个功能强大的子系统 集合框架 集合框架是一个复杂接 口和类的层 提供了管理对象组的优化技术 使用集合框架的目的有几个 首先这种框架必须是高性能的 基础集合 动态数组