Java之Collection和List接口

news2024/11/27 21:38:11

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

文章目录

  • 前言:集合概述
  • 一、Collection接口
    • 1.1、常用方法
  • 二、List接口
    • 2.1、常用方法
    • 2.2、ArrayList
    • 2.3、LinkedList
      • 2.3.1、​​​​ LinkedList特有方法
  • 总结


前言:集合概述

Java为了存储不同类型的多个对象提供了一系列特殊的类,这个类统称为集合。并且这些类可以存储任意类型的对象,而且存储长度也可以改变。

注意:集合都位于java.util包中,使用集合的时候需要导包。
在这里插入图片描述
(虚线框里的都是接口类型,实线框里的都是具体的实现类)


一、Collection接口

Collection接口是Java单列集合中的根接口,它定义了各种具体单列集合的共性,其他单例集合大多直接或间接的继承该接口(从图可以看出)。

Collection接口定义如下:

public interface Collection<E> extends Iterable<E>{

        //Query Qperations

}

(Collection是Iterable的子接口,定义中的表示泛型)

1.1、常用方法

方法声明功能描述
boolean add (Object o)向当前集合中添加一个元素
boolean addAll(Collection c)将指定集合c中的所有元素添加到当前集合中
void clear ()删除当前集合中所有的元素
boolean remove(Object o)删除当前集合中指定的元素
boolean removeAll(Collection c)删除当前集合中包含的集合c中的所有元素
boolean isEmpty()判断当前集合是否为空
boolean contains(Object o)判断当前集合是否包含某个元素
boolean containsAll(Collection c)判断当前集合中是否包含指定集合c中的所有元素
Iterator iterator()返回当前集合的迭代器。迭代器用于遍历集合中的所有元素
int size()获取当前集合元素个数

二、List接口

List接口继承于Collection接口,List接口实例中允许存储重复的元素,所有的元素将以线性方式存储。List接口实例中存储的元素是有序的,即元素的存入和取出顺序一致(与队列相似)

2.1、常用方法

方法声明功能描述
void add(int index,Object element)将元素element插入List的索引index处
boolean addAll(int index,Collection c)将集合c包含的所有元素插入List集合的索引index处
Object get(int index)返回集合索引index处的元素
Object remove(int index)删除索引index处的元素
Object set(int index,Object element)将索引index处的元素替换成element对象,并将替换后的元素返回
int indexOf(Object o)返回对象o在List中第一次出现的索引
int lastIndexOf(Object o)返回对象o在List中最后一次出现的索引
List subList (int fromIndex,int toIndex)返回从索引fromIndex(包括)到toIndex(不包括)的所有元素组成的子集合

2.2、ArrayList

ArrayList是List接口的一个实现类,ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList看作一个长度可变的数组。

2.3、LinkedList

LinkedList内部维护了一个双向循环链表,链表中的每一个元素都使用引用的方式记录它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来,当插入一个新元素时,只需要修改元素之间的引用关系即可,删除也是如此。
在这里插入图片描述

2.3.1、​​​​ LinkedList特有方法

方法声明功能描述
void add (int index,E element)在当前集合的索引index处插入元素element
void addFirst(Object o)将指定元素o插入当前集合的开头
void addLast(Object o)将指定元素o添加到当前集合的结尾
Object getFirst()返回当前集合的第一元素
Object getLast()返回当前集合的最后一个元素
Object removeFirst()移除并返回当前集合的第一个元素
Object removeLast()移除并返回当前集合的最后一个元素
boolean offer(Object o)将指定元素o添加到当前集合的结尾
boolean offerFirst(Object o)将指定元素o添加到当前集合的开头
boolean offerLast(Object o)将指定元素o添加到当前集合的结尾
Object peekFirst()获取当前集合的第一个元素
Object peekLast()获取当前集合的最后一个元素
Object pollFirst()移除并返回当前集合的第一个元素
Object pollLast()移除并返回当前集合的最后一个元素
void push(Object o)将指定元素o添加到当前集合的开头

总结

以上就是Java之Collection和List接口的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1254546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言编译过程再解析

多年以前,分析过编译过程,并写了一篇博客,现在对编译过程有了更广阔的认识,记录在此 编译过程 中的 链接与 编译 编译过程分为1. 预处理2. 编译3. 汇编4. 链接其中有 2个过程比较特殊,1. 编译2. 链接对于C程序来说,链接分为提前链接(静态链接)对应下图第1行运行时链接(动态链…

【Linux学习笔记】protobuf 基本数据编码

https://zhuanlan.zhihu.com/p/557457644https://zhuanlan.zhihu.com/p/557457644 [新文导读] 从Base64到Protobuf&#xff0c;详解Protobuf的数据编码原理本篇将从Base64再到Base128编码&#xff0c;带你一起从底层来理解Protobuf的数据编码原理。本文结构总体与 Protobuf 官…

扫码点餐小程序的效果如何

扫码点餐是餐饮商家常用的方式&#xff0c;其可以帮助商家更好更快的服务到店客户及节省商家点餐、加菜、汇总结算的时间及人力成本。 通过【雨科】平台搭建餐饮扫码点餐小程序&#xff0c;客户进店用小程序扫描桌码即可开始点餐&#xff0c;确认菜单信息后打印小票提交到厨房…

vivado产生报告阅读分析23-时序路径特性报告

时序路径特性报告 下图显示了在“ Timing Mode ” &#xff08; 时序模式 &#xff09; 下运行“ Report Design Analysis ” &#xff08; 设计分析报告 &#xff09; 的输出示例 &#xff0c; 其中显示了设计中 10 条最差建立路径的路径特性。在 Vivado IDE 中选中“ Repo…

Spring RabbitMQ那些事(2-两种方式实现延时消息订阅)

目录 一、序言二、死信交换机和消息TTL实现延迟消息1、死信队列介绍2、代码示例(1) 死信交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 三、延迟消息交换机实现延迟消息1、安装延时消息插件2、代码示例(1) 延时消息交换机配置(2) 消息生产者(3) 消息消费者 3、测试用例 …

深度学习第2天:RNN循环神经网络

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 介绍 记忆功能对比展现 任务描述 导入库 处理数据 前馈神经网络 循环神经网络 编译与训练模型 模型预测 可能的问题 梯度消失 梯…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-6:信号量)

学习之路主要为FreeRTOS操作系统在STM32F103&#xff08;STM32F103C8T6&#xff09;上的运用&#xff0c;采用的是标准库编程的方式&#xff0c;使用的IDE为KEIL5。 注意&#xff01;&#xff01;&#xff01;本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

Spring Boot 改版如何解决?使用阿里云创建项目、使用IDEA进行创建

接上次博客&#xff1a;JavaEE进阶&#xff08;2&#xff09;SpringBoot 快速上手&#xff08;环境准备、Maven&#xff1a;核心功能&#xff0c;Maven仓库、第⼀个SpringBoot程序&#xff1a;Spring介绍&#xff0c;Spring Boot介绍、创建项目&#xff09;-CSDN博客 目录 使…

ESP32和ESP8266的ESP-MESH

ESP32和ESP8266的ESP-MESH 功能介绍一、介绍ESP-MESH二、安装painlessMesh库三、ESP-MESH基本示例&#xff08;广播消息&#xff09;四、示范 功能介绍 了解如何使用ESP-MESH网络协议通过ESP32和ESP8266 NodeMCU板构建网状网络。 ESP-MESH允许多个设备&#xff08;节点&#x…

[Java] 阿里一面~说一下ArrayList 与 LinkedList 区别

文章目录 是否保证线程安全底层数据结构插入和删除是否受元素位置的影响是否支持快速随机访问内存空间占用&#xff1a; 是否保证线程安全 ArrayList 和 LinkedList 都是不同步的&#xff0c;也就是不保证线程安全&#xff1b; 底层数据结构 ● ArrayList 底层使用的是 Obje…

windows安装yarn

1、不要用npm装&#xff0c;因为npm安装的没有配置环境变量&#xff1b; 2、 用github搜yarn&#xff0c;点击排名第一的&#xff0c;然后点击releases 3、往下拉找到msi这几个字母的&#xff0c;然后就是下一步&#xff0c;下一步就行

深度学习第3天:CNN卷积神经网络

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​ 文章目录 介绍 CNN的主要结构 卷积层 激励层 池化层 Kears搭建CNN 搭建代码 直观感受卷积的作用 结语 介绍 卷积神经网络&#xff08;Convol…

单片机学习2——流水灯的实现

#include<reg52.h>sbit LED P1^0; unsigned char i;void main() {while(1){LED 0;for(i0;i<100;i);LED 1;for(i0;i<100;i);} } RST是复位按钮&#xff0c;单击一下之后&#xff0c;程序就会跑到最开始的位置运行。 右侧的按钮是RUN按钮&#xff0c;单击下&…

【华为OD】B\C卷真题:100%通过:找城市 C/C++实现

【华为OD】B\C卷真题&#xff1a;100%通过&#xff1a;找城市 C/C实现 题目描述&#xff1a; 一张地图上有n个城市&#xff0c;城市和城市之间有且只有一条道路相连&#xff1a;要么直接相连&#xff0c;要么通过其它城市中转相连&#xff08;可中转一次或多次&#xff09;。…

项目去除git版本控制

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…

【深度学习】DAMO-YOLO,阿里,701类通用检测模型,目标检测

https://github.com/tinyvision/DAMO-YOLO/blob/master/README_cn.md DAMO-YOLO是由阿里巴巴达摩院智能计算实验室TinyML团队开发的一个兼顾速度与精度的目标检测框架,其效果超越了目前的一众YOLO系列方法&#xff0c;在实现SOTA的同时&#xff0c;保持了很高的推理速度。DAMO…

中伟视界:创新解决方案,搭建自适应的AI算法模型训练平台

搭建AI算法模型自训练平台是当今人工智能领域的热门话题&#xff0c;但是其中存在着许多技术难点需要克服。 自训练平台需要具备高效的算法模型&#xff0c;这就要求能够处理庞大的数据量并进行高速计算。 平台需要具备强大的数据管理及存储能力&#xff0c;以满足训练过程中的…

Typescript基础面试题 | 02.精选 ts 面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

串口通信基础知识介绍

一、串行通讯与并行通讯 在通信和计算机科学中&#xff0c;串行通信(Serial Communication)是一个通用概念&#xff0c;泛指所有的串行的通信协议&#xff0c;如RS232、RS422、RS485、USB、I2C、SPI等。 串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种…

2023年网络安全比赛--综合渗透测试②(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.通过 PC 中的渗透测试平台 Kali 对服务器场景进行渗透测试,将扫描开放的所有端口当作flag提交(例:21,22,23); 2.通过 PC 中的渗透测试平台 Kali 对服务器场景进行渗透测试,将初…