java集合--List集合的基本用法

一、ArrayList集合

1.ArrayList集合的特点

在这里插入图片描述

2.ArrayList集合的一些方法

①.add(Object element) 向列表的尾部添加指定的元素。
②.size() 返回列表中的元素个数。
③.get(int index) 返回列表中指定位置的元素,index从0开始。

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>(); //<String>泛型表示集合中存的是字符串形式的元素。list.add("青城"); //add()用于向List集合容器中添加元素。list.add("博雅");System.out.println(list);System.out.println(list.size()); //size()用于获取集合中有多少个元素。System.out.println(list.get(1)); //get()获取指定索引(从0开始)位置的元素。}
}

④.add(int index, Object element) 在列表的指定位置(从0开始)插入指定元素

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("qc");list.add("by");System.out.println(list);list.add(1, "gc"); //在指定位置添加元素,原来位置的元素后置。System.out.println(list);}
}

⑤.set(int i, Object element) 使用元素element替换索引i位置的元素,并返回被替换的元素。

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("qc");list.add("by");System.out.println(list);list.set(1, "wd"); //替换指定位置的元素,从0开始,替换了“wd”。System.out.println(list);}
}

⑥.clear() 从列表中移除所有元素。
⑦.isEmpty() 判断列表是否包含元素,不包含元素则返回 true,否则返回false。

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("qc");list.add("by");System.out.println(list);list.clear(); //清空List集合中的所有元素。System.out.println(list.isEmpty()); //集合容器没有元素,则true。System.out.println(list);}
}

⑧.contains(Object o) 如果列表包含指定的元素,则返回 true。

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("qc");list.add("by");boolean flag = list.contains("gc"); //用来判断集合容器中是否含有参数元素。System.out.println(flag);}
}

⑨.remove(int index) 移除列表中指定位置的元素,并返回被删元素,删除位置后面的元素(如果有)向前移动。

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("qc");list.add("by");list.add("gc");System.out.println(list.remove(1)); //删除指定索引(从0开始)位置的元素,并将元素返回,并后面元素前移。System.out.println(list);}
}

⑩.remove(Object o) 从List集合中移除第一次出现的指定元素,移除成功返回true,否则返回false。当且仅当List集合中含有满(o==null ? get(i)==null : o.equals(get(i)))条件的最低索引i的元素时才会返回true。

 public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("青城");list.add("博雅");list.add("博雅");list.add("教育");System.out.println(list.remove("博雅")); //删除List集合元素,返回boolean,并后面元素前移。System.out.println(list);}
}

11.iterator() 返回按适当顺序在列表的元素上进行迭代的迭代器。

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("青城");list.add("博雅");Iterator<String> ite = list.iterator(); //将List集合中元素转到iterator变量中。while(ite.hasNext()) //hasNext()判断当前“指针”下面是否还有元素的方法,java中没有指针,这只是举个例子。{System.out.println(ite.next()); //如果“指针”下面有元素,则移动“指针”并获取相应位置的元素。}}
}

12.for循环遍历List集合:

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("青城");list.add("博雅");for (int i = 0; i < list.size(); i++) {  //用size方法获取长度。System.out.println(list.get(i));  //用get方法获取值。}}
}

13.加强for循环遍历List集合:

public class Test {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("青城");list.add("博雅");for (String name : list) {   //使用foreach进行遍历。System.out.println(name);}}
}

二、LinkedList集合

1.LinkedList集合的特点

在这里插入图片描述

2.LinkedList集合的一些方法

①.添加

boolean add(Object element) 它将元素附加到列表的末尾。
boolean add(int index,Object element) 指定位置插入。
void addFirst(E element) 元素附加到列表的头部
void addLast(E element) 元素附加到列表的尾部

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.addFirst(4);
linkedList.addFirst(5);
linkedList.addLast(6);
linkedList.add(2,9);
System.out.println(linkedList);

输出

[5, 4, 9, 1, 2, 3, 6]

②:获取数据

Object get(int index) 根据下标获取数据
Object getFirst() 它返回链表的第一个元素。
Object getLast() 它返回链接列表的最后一个元素。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
System.out.println("获取下标为1的元素:"+linkedList.get(1));
System.out.println("链表的第一个元素:"+linkedList.getFirst());
System.out.println("链表的最后一个元素:"+linkedList.getLast());

③.查询

boolean contains(Object element)如果元素存在于列表中,则返回true。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
System.out.println("是否出现过元素1:"+linkedList.contains(1));
System.out.println("是否出现过元素4:"+linkedList.contains(4));

输出

是否出现过元素1true
是否出现过元素4:false

④.修改

Object set(int index,Object element)它用于用新元素替换列表中的现有元素

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
linkedList.set(1,9);
System.out.println("更新过的链表:"+linkedList);

输出

更新过的链表:[1, 9, 3, 1]

⑤.删除

E remove() 删除第一个元素
E remove(int location) 删除指定位置的元素
E removeFirst() 删除并返回链接列表的头部一个元素
E removeLast() 删除并返回链接列表的尾部一个元素

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
linkedList.remove(); //删除第一个元素
linkedList.remove(2);//删除指定位置的元素
System.out.println(linkedList);

⑥.清空

void clear():它删除列表中的所有元素。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
linkedList.clear();
System.out.println(linkedList);

输出

[]

⑦.链表长度

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
System.out.println("链表的长度:"+linkedList.size());

输出

链表的长度:4

三、Vector集合(不建议使用)

Vector集合的特点
在这里插入图片描述

四、List集合总结

在这里插入图片描述

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

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

相关文章

Beyond Compare4破解方法

方式一 第一种办法&#xff08;也是最有效的&#xff09; 删除C:\Users\用户名\AppData\Roaming\Scooter Software\Beyond Compare 4下的所有文件&#xff0c;重启Beyond Compare 4即可&#xff08;注意&#xff1a;用户名下的AppData文件夹有可能会被隐藏起来) 方式二 删…

光谱数据处理:1.特征波长优选的不同方法与Python实现

首先&#xff0c;我们要理解为什么要对“光谱数据进行特征波长优选”以及这是在干嘛&#xff0c;光谱数据可以想象成一长串的彩色条纹&#xff0c;每种颜色对应一个波长&#xff0c;就像彩虹一样。这些颜色的条纹代表了从某种物质&#xff08;比如植物、矿石或是食品&#xff0…

leet hot 100-1 两数之和

两数之和 原题链接思路代码 原题链接 leet hot 100-1 1. 两数之和 思路 可以把当前数字放到容器里面去 当我们遍历一个新的数字的时候 减一下与目标值的差 然后得到的结果在容器里面查看是否存在 时间复杂度O(n) 空间复杂度(n) 代码 class Solution { public:vector<…

!!!Python虚拟环境改名后的坑!!!!

搞了一晚上终于弄好这python虚拟环境的问题了&#xff01;真的是坑啊&#xff01; 本来用的纯python环境下的虚拟环境&#xff0c;一时心血来潮&#xff0c;把电脑重新装了一遍&#xff0c;虚拟环境的目录也改了一下&#xff0c;结果虚拟环境再vscode中是可以使用&#xff0c;…

Uniapp小程序开发-底部tabbar的开发思路

文章目录 前言一、uniapp 实现 tabbar二、图标使用网络图片后端返回tabbar信息uniapp方式中的setTabBarItem 总结 前言 记录uniapp 开发小程序的底部tabbar &#xff0c;这里讨论的不是自定义tabbar的情况。而是使用wx.setTabBarItem(Object object) 这个api的情况。关于custo…

通天星CMSV6 车载视频监控平台信息泄露漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

uni-app vue3 setup nvue中webview层级覆盖问题

核心就是这两行&#xff0c;&#x1f923;发现设置后不能点击了&#xff0c;这个玩意可能只能弹窗打开的时候动态的修改 position: static, zindex: 0onLoad(options > {loadWebview()})function loadWebview() {let pageInfo uni.getSystemInfoSync();width.value pageI…

抽象的java

Consider defining a bean of type org.springframework.mail.MailSender in your configuration. 报错原因&#xff1a; 第一个&#xff1a;未安装对应的依赖 第二个&#xff1a;对应配置问题 背景&#xff1a;用springboot-java完成邮箱发送 第一个问题解决方法&#xff1…

太阳能光伏电池模型参数辨识模型介绍

一、太阳能光伏电池模型参数辨识模型介绍 由于传统化石能源短缺问题日益严重&#xff0c;我国对新能源发展的重视提到了前所未有的高度。太阳能作为一种可再生能源&#xff0c;不会对环境造成污染&#xff0c;受到了越来越多的关注太阳能由于其储量丰富,无污染和无地域限制等优…

【Python笔记-设计模式】前端控制器模式

一、说明 常作为MVC&#xff08;Model-View-Controller&#xff09;模式的一部分&#xff0c;用来处理用户请求并将其分发给相应的处理程序&#xff08;即路由匹配&#xff09;。 (一) 解决问题 将请求的处理流程集中管理&#xff0c;统一处理所有的请求 (二) 使用场景 需…

车载电子电器架构 —— 电气架构开发计划

车载电子电器架构 —— 电气架构开发计划 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

《隐私计算简易速速上手小册》第8章:隐私计算对机器学习和 AI 的影响(2024 最新版)

文章目录 8.1 机器学习中的隐私问题8.1.1 基础知识8.1.2 主要案例:使用差分隐私的机器学习8.1.3 拓展案例 1:基于隐私的数据聚合8.1.4 拓展案例 2:保护隐私的推荐系统8.2 使用隐私计算加强 AI 安全8.2.1 基础知识8.2.2 主要案例:使用同态加密的数据分析8.2.3 拓展案例 1:安…

wpf 3d 后台加载模型和调整参数

下载了一个代码&#xff0c;加载obj模型&#xff1b;它的参数在xaml里&#xff0c;模型加载出来刚好&#xff1b; 然后加载另一个obj模型&#xff1b;加载出来之后大&#xff0c;偏到很高和左的位置&#xff1b; 它之前的摄像机位置&#xff0c; Position"9.94759830064…

nodejs:nrm(npm的镜像源管理器)

nrm&#xff08;Npm Registry Manager&#xff09;是一个用于快速切换和管理Node.js包管理器npm的镜像源&#xff08;registry&#xff09;的工具。 通过nrm&#xff0c;开发者可以轻松查看当前使用的npm源、添加新的镜像源、测试不同镜像源的速度&#xff0c;并在多个镜像源之…

C++入门2

目录 前言&#xff1a; 引用 引用特性&#xff1a; 常引用&#xff1a; 使用场景&#xff1a; 1. 做参数 2. 做返回值 3.引用做返回值(方便读写返回变量&#xff09; 传值、传引用效率比较: 引用和指针的区别: 内联函数 auto关键字(C11) auto的使用细则&#xff1a…

Leetcoder Day21| 回溯理论基础+组合

语言&#xff1a;Java/Go 回溯理论基础 回溯函数也就是递归函数&#xff1b; 所有回溯法的问题都可以抽象为树形结构&#xff1b; 回溯法解决的都是在集合中递归查找子集&#xff0c;集合的大小就构成了树的宽度&#xff0c;递归的深度&#xff0c;都构成的树的深度。 适用的题…

抖音数据抓取工具|短视频下载工具|视频内容提取软件

一、开发背景&#xff1a; 随着抖音平台的流行&#xff0c;越来越多的人希望能够下载抖音视频以进行个人收藏或分享。然而&#xff0c;目前在网上找到的抖音视频下载工具功能单一&#xff0c;操作繁琐&#xff0c;无法满足用户的需求。因此&#xff0c;我们决定开发一款功能强大…

ERROR: No matching distribution found for json

问题描述 安装 json库 的时候&#xff0c;一直报错&#xff1a; 解决方案&#xff1a; 大多数博文分享是&#xff1a;①网络问题&#xff0c;换国内镜像&#xff1b;②更新pip. 少有人提及在Python 3.10.1中&#xff0c;它叫 simplejson 了 pip install simplejson 参考&am…

【Golang】Golang使用embed加载、打包静态资源文件

【Golang】Golang使用embed加载、打包静态资源文件 大家好 我是寸铁&#x1f44a; 总结了一篇Golang使用embed加载静态资源文件的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 事情是这样的&#xff1a;前不久&#xff0c;有同学问我,golang怎么把静态资源文件打包成一…

在Ubuntu 16.04 LTS Xenial上安装最新的Linux manual page(man)中文手册manpages-zh(v1.6.4)

0. 写在前面 0.1 我的环境介绍 先说明&#xff0c;我的在虚拟机中装的Ubuntu 16.04 LTS Xenial。为什么要介绍这个呢&#xff1f;因为这个鸟系统太老了&#xff01;所以用apt安装的好多工具版本都好老&#xff01;由此用apt安装就会出现无穷无尽的问题。。。。。所以好多都要…