【Java基础】集合(2) —— List

news2024/12/27 12:53:38

List

存储的对象是有序的(集合中存储对象的顺序和使用add方法添加对象的顺序一致),存储的对象是可重复的

List的特有的功能: 都是可以操作索引的功能。

  1. 增:

    • void add(int index, E element )
    • boolean addAll(int index, Collection<? extends E> c)
    col.add("java");
    col.add(1,"hello");
    col.addAll(2,col2);
    
    • E remove(int index)
      返回被删除的对象
    Object obj = col.remove(3);
    
    • E set(int index, E element)
      修改指定索引上的元素
     col.set(2,"bigdata");
    
    • E get(int index)
      得到指定位置上的元素
    • ListIterator listIterator()
      返回此列表元素的列表迭代器(按适当顺序)。
    • ListIterator listIterator(int index)
      从指定元素开始迭代
    • List subList(int fromIndex, int toIndex)
      返回子List,不包括结束位置上的元素
    • int indexOf(E element)
      获取元素的索引
    • int lastIndex0f(E element)
      获取元素的最后一次出现的索引
    • **void replaceAll(UnaryOperator operator) R apply(T t) **
      替换功能
    col.replaceAll(t->((String)t).concat("hehe"));
    
    • void sort (Comparator comparator) int compare(T o1, T o2)
      排序功能
    col.sort((o1,o2)->((String)o2).length()-((String)o1).length());
    
ArrayList
  • 后缀:List,说明存储的数据有序,可重复
  • 前缀:Array,说明该集合在存储数据时底层数据结构是数组
    数组的特点是便于查找,不便于添加和删除
Vector
  • 线程安全的实现
  • 该集合在存储数据时,底层数据结构是数组
遍历

Enumeration elements()
hasMoreElements() nextElement()

Vector v=new Vector();
v.add("java01");
v.add("java02");
Enumeration en = v.elements();
while(en.hasMoreElements()){
	Object obj = en.nextElement();
	System.out.println(obj);
}		
LinkedList
  • 后缀:List,说明存储的数据有序,可重复

  • 前缀:Linked,说明该集合在存储数据时,底层数据结构是链表

    ​ 链表的特点是便于添加和删除,不便于查找

    单向链表:

    在这里插入图片描述

    双向链表:

    在这里插入图片描述

方法
  • addFirst() addLast()
    getFirst() getLast()
    removeFirst() removeLast()

  • jdk1.6以后
    offerFirst() offerLast()
    peekFirst() peekLast()
    pollFirst() pollLast()

public static void main(String[] args) {
	LinkedList list=new LinkedList();
	list.addFirst("001");
	list.addFirst("002");
	list.addFirst("003");
	while(!list.isEmpty())//删除所有节点
		 System.out.println(list.removeFirst());
//System.out.println(list.getFirst());//NoSuchElementException
	//System.out.println(list.peekFirst()); //null  不会异常
    //System.out.println(list.removeFirst());// 异常
	System.out.println(list.pollFirst());//null  不会异常
}

img

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

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

相关文章

全面提升数据采集效率:IP代理产品的应用与评估详解

全面提升数据采集效率&#xff1a;IP代理产品的应用与评估详解 文章目录 全面提升数据采集效率&#xff1a;IP代理产品的应用与评估详解背景应用场景&#xff1a;平台首页信息抓取准备评测素材详细的产品使用和评测流程产品介绍亮数据的IP代理服务亮数据的爬虫工具及采集技术 注…

MFC通过继承现有控件自定义控件

在MFC 自定义控件&#xff0c;可以通过继承MFC提供的控件类&#xff08;如CButton、CEdit、CListBox等&#xff09;并重写其成员函数和消息处理函数来实现。 以下是一个基本的步骤指南&#xff0c;用于在MFC中创建自定义控件&#xff1a; 确定要继承的基类&#xff1a; 首先…

AutoNeRF:Training Implicit Scene Representations with Autonomous Agents

论文概述 《AutoNeRF》是由Pierre Marza等人撰写的一篇研究论文&#xff0c;旨在通过自主智能体收集数据来训练隐式场景表示&#xff08;如神经辐射场&#xff0c;NeRF&#xff09;。传统的NeRF训练通常需要人为的数据收集&#xff0c;而AutoNeRF则提出了一种使用自主智能体高效…

大模型来了,创业者怎么做出好产品?

大模型的问世惊艳了人们的目光&#xff0c;打开了对AI想象力——生成未来&#xff0c;是谁的未来&#xff1f; “电的发明并不是只能让爱迪生的公司成为全球最大公司&#xff0c;而是为众多电器制造商也提供了巨大的商机。从人类科技史的角度来看&#xff0c;应用层面的价值往…

C++列表实现

文章目录 一、listView相关内容主要思想实例全部代码 二、QTreeView 一、listView 相关内容 QAbstractItemModel&#xff1a;一个抽象的类&#xff0c;为数据项模型提供抽象的接口&#xff0c;常见的的数据模型列如&#xff1a;QStringListModel,QStandardItemMode,QDirModel…

第一个fyne应用

第一个fyne应用 由于在写一个milvus的图形化工具&#xff0c;方便客户端使用&#xff0c;调研了一下只有这fyne的go-gui的star最多&#xff0c;比较流行&#xff0c;因此打算使用这个框架来进行milvus的工具开发。 第一个fyne应用 依赖go.mod: module fynedemogo 1.20requi…

BGP学习三:BGP路由优选12条规则,闪亮登场啦啦啦啦啦

目录 一.BGP策略工具 &#xff08;1&#xff09;Router-policy作用 &#xff08;2&#xff09;组成部分 &#xff08;3&#xff09;router-policy注意事项 二.优选规则 ①丢弃下一跳不可达 (1)优选prefered-value值大的路由 1.首选优先级 (2)优选local-preference(本地…

绿色消费新趋势:共享购模式的积分革命

在当今绿色消费风潮中&#xff0c;一种名为共享购的新模式正悄然兴起&#xff0c;它通过创新的绿色积分机制&#xff0c;不仅鼓励了消费者的绿色消费行为&#xff0c;还为消费者和商家带来了更多的实惠与额外收益。 传统积分机制的局限 在传统的消费积分模式中&#xff0c;消费…

VMware Workstation 安装CentOS Linux操作系统

1.我们已经下载好VMware 创建新的虚拟机 2.选择典型 3.安装程序光盘映像文件 4.配置用户名密码 5.命名虚拟机&#xff0c;并确定位置 6.如图所示设置 7.等待&#xff08;时间会有点久&#xff09; 8.输入密码登入账号

高德、百度开车导航APP是怎么知道红绿灯倒计时的?

高德、百度开车导航APP之所以能够知道红绿灯的倒计时&#xff0c;这背后是一系列复杂的科技手段和数据分析的综合运用。从交管部门提供的数据&#xff0c;到导航软件自身通过大数据和算法进行的计算&#xff0c;每一个环节都为红绿灯倒计时的准确呈现提供了支撑。 首先&#xf…

XMind 头脑风暴/思维导图软件_V24.04.10291 PC高级版

一款风靡全球的头脑风暴和思维导图软件&#xff0c;为激发灵感和创意而生。在国内使用广泛&#xff0c;拥有强大的功能&#xff0c;包括思维管理&#xff0c;商务演示&#xff0c;与办公软件协同工作等功能。XMind中文版采用全球先进的Eclipse RCP软件架构&#xff0c;是集思维…

搞大事!法国邀请芬兰公司建量子工厂

法国当地时间5月13日&#xff0c;法国总统马克龙宣布启动2024年度“选择法国”&#xff08;Choose France&#xff09;商业峰会。今年峰会召开前&#xff0c;法国赢得了创纪录的150亿欧元外国投资承诺&#xff0c;覆盖从人工智能到制药和能源等领域。 而涉及到量子领域最重磅的…

技术架构

一、单机架构 简介&#xff1a;应用服务和数据库服务共用一台服务器 出现原因:出现在互联网早期&#xff0c;访问量比较小&#xff0c;单机足以满足 架构工作原理&#xff1a;以电商为例&#xff0c;可以看到通过应用&#xff08;划分了多个模块&#xff09;和数据库在单个服…

能自动化视频剪辑的开源工具来了 剪辑师、自媒体作者狂喜

项目简介 Funclip 是阿里巴巴通义实验室开源的一款视频剪辑工具&#xff0c;专门用于精准、便捷的视频切片。 它能够自动识别视频中的中文语音并允许用户根据语音内容来裁剪视频。该工具使用了阿里巴巴语音识别模型FunASR Paraformer-Large确保了剪辑的精准性。 你可以根据识…

聚鼎科技:装饰画行业到底怎么样

在当代社会&#xff0c;随着人们审美水平的提升和生活品质的追求&#xff0c;装饰画行业呈现出蓬勃的发展态势。这一行业不仅关系到文化艺术的传承与创新&#xff0c;也与市场经济紧密相连&#xff0c;其前景值得深入探讨。 装饰画行业的市场潜力巨大&#xff0c;它贯穿于家居装…

其它高阶数据结构②_图(概念+存储+遍历+最小生成树)

目录 1. 图的概念 2. 图的存储结构 2.1 邻接矩阵&#xff08;后面算法所用&#xff09; 2.2 邻接表 3. 图的遍历 3.1 BFS广度优先遍历 3.2 DFS深度优先遍历 4. 最小生成树 4.1 Kruskal算法 4.2 Prim算法 本篇完。 1. 图的概念 图是由顶点集合及顶点间的关系组成的一…

AI 绘画神器 Fooocus 图生图:图像放大或变化、图像提示、图像重绘或扩充、反推提示词、生成参数提取、所需模型下载

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本文讲述 Fooocus 的图生图功能&#xff0c;主要内容包括&#xff1a;图像放大或变化、图像提示、图像重绘或扩充、反推…

没有疯狂内卷的日本智能机市场,小屏与设计仍旧是主流

如果聊起国内的智能机市场&#xff0c;我想大多数人的印象就是疯狂内卷。卷影像、卷屏幕、卷快充、卷性能……客观地说&#xff0c;国内的3C产品还是很有质价比的。不过在没有如此内卷的日本市场&#xff0c;各种小屏手机仍旧是主流。 除了苹果外&#xff0c;日本本土品牌的夏普…

SDL系列(四)—— 事件机制

事件循环 大多数多媒体程序依靠 事件系统 来处理输入。 SDL 为处理输入事件提供了灵活的 API 。 本质上&#xff0c; SDL 将来自设备&#xff08;如键盘&#xff0c;鼠标或控制器&#xff09;的输入记录为 事件 &#xff0c;将它们存储在 “ 事件队列 ”中。 您可以将此…

3D轻量化引擎HOOPS Communicator在PLM全生命周期管理中的应用

在当今快速发展的工业领域&#xff0c;产品生命周期管理&#xff08;PLM&#xff09;是确保产品从设计到市场再到最终退役过程中信息一致性和流程效率的关键。 随着3D模型的日益复杂化和数据量的不断增长&#xff0c;传统的PLM系统面临着数据管理和渲染效率的挑战。HOOPS Comm…