JAVA集合ArrayList

目录

ArrayList概述

add(element) 用法

 add(index, element)用法

remove(element)用法

remove(index)用法

get(index)用法

set(index,element)

练习

test1

定义一个集合,添加字符串,并进行遍历,要求输出格式为:[元素1,元素2,元素3]

 test2

定义一个集合,添加一些学生对象,并进行遍历,学生类的属性为:姓名,年龄



ArrayList概述

ArrayList 是 Java 集合框架中的一种动态数组,它实现了List接口。它可以按照元素的插入顺序进行存储,并允许按索引访问、添加和删除元素。与普通数组不同的是,ArrayList会自动扩容以容纳更多的元素,因此它的大小是可变的。

下面是一些ArrayList的常用方法:

  • add(element): 向列表末尾添加一个元素。
  • add(index, element): 在指定位置插入一个元素。
  • remove(element): 默认删除第一个element元素。
  • remove(index): 删除指定位置的元素。
  • size(): 返回列表中的元素数量。
  • get(index): 获取指定位置的元素。
  • set(index,element):修改指定位置的元素。

add(element) 用法

add(element): 向列表末尾添加一个元素。

首先我们得先创建一个ArrayList

ArrayList<String> list=new ArrayList<>();

 然后使用list.add()添加数据

list.add("aaa");

  👆这个的返回值是一个Boolean类型的,下面我们来看一下示例

可以看得到返回的结果为true

添加的返回值始终都是true,所以平时使用的时候可以省略返回值

 add(index, element)用法

add(index, element): 在指定位置插入一个元素。

跟add(element)差不多,这里就直接展示代码啦

学完添加我们来看看如何删除

remove(element)用法

remove(element): 默认删除第一个element元素。

它的返回值是一个Boolean类型

如果集合里面没有要删除的数据就返回false

remove(index)用法

remove(index): 删除指定位置的元素。

这个的返回值时删除的元素

运行结果在这里👇 

get(index)用法

get(index): 获取指定位置的元素。

结果如下

那我们如果想遍历一下该如何实现呢

集合里的长度是int size(),那我们就可以使用循环来实现遍历

运行结果如下

set(index,element)

set(index,element):修改指定位置的元素。

运行结果如下,而已看到后面的aaa被修改为了eee

下面我们来搞点练习试试

-----------------------------------------------------------------------------------------------------------------------------

练习

test1

定义一个集合,添加字符串,并进行遍历,要求输出格式为:[元素1,元素2,元素3]

分析:这样的话,我们输出的时候就不需要换行,在遍历的同时还得有一个逗号的判断,什么时候需要逗号,什么时候不需要逗号

下面我们就来看一下代码是如何实现的

import java.util.ArrayList;public class test1 {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("听歌");list.add("睡觉");list.add("敲代码");list.add("上班");list.add("吃饭");System.out.print("[");for (int i = 0; i < list.size(); i++) {String str= list.get(i);System.out.print(str);if (i<list.size()-1) {System.out.print(",");}}System.out.print("]");}
}

结果跟要求是一样的啦

那如果是添加数字呢?该如何实现

这里就需要用到基本数据类型对应的包装类

byte                   Byte

short                  Short

char                   Character

int                       Integer

long                    Long 

float                    Float

double                Double

boolean              Boolean

好,有了这个就好办多了

首先先创建一个ArrayList,数据类型改一下

ArrayList<Integer> list=new ArrayList<>();

import java.util.ArrayList;public class test1 {public static void main(String[] args) {ArrayList<Integer> list=new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);System.out.print("[");for (int i = 0; i < list.size(); i++) {int str= list.get(i);System.out.print(str);if (i<list.size()-1) {System.out.print(",");}}System.out.print("]");}
}

 test2

定义一个集合,添加一些学生对象,并进行遍历,学生类的属性为:姓名,年龄

首先我们得创建一个学生对象

public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}public String toString() {return "Student{name = " + name + ", age = " + age + "}";}
}

下面才是本道练习的代码

import java.util.ArrayList;public class test2 {public static void main(String[] args) {ArrayList<Student>list=new ArrayList<>();Student S1=new Student("zhangsan",18);Student S2=new Student("lisi",19);Student S3=new Student("wagwu",20);list.add(S1);list.add(S2);list.add(S3);for (int i = 0; i < list.size(); i++) {Student student = list.get(i);System.out.println(student.getName()+","+student.getAge());}}

运行结果如下

 

 如果我们要手动输入这三个学生的信息的话那又该如何呢?

下面我们来看一下这该如何实现

import java.util.ArrayList;
import java.util.Scanner;public class test2 {public static void main(String[] args) {ArrayList<Student>list=new ArrayList<>();Scanner sc=new Scanner(System.in);for (int i = 0; i < 3; i++) {Student stu=new Student();System.out.println("请输入学生的姓名");String name=sc.next();System.out.println("请输入学生的年龄");int age=sc.nextInt();stu.setAge(age);stu.setName(name);list.add(stu);}System.out.println("----------------------------------------------------------");for (int i = 0; i < list.size(); i++) {Student student = list.get(i);System.out.println(student.getName()+","+student.getAge());}}
}

运行结果如下

test3

main方法中定义一个集合,存入三个用户对象。用户属性为:id、username,password。要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回true,如果不存在,返回false

这一题该怎么办呢

先写个用户类

public class User {private String id;private  String username;private  String password;public User() {}public User(String id, String username, String password) {this.id = id;this.username = username;this.password = password;}/*** 获取* @return id*/public String getId() {return id;}/*** 设置* @param id*/public void setId(String id) {this.id = id;}/*** 获取* @return username*/public String getUsername() {return username;}/*** 设置* @param username*/public void setUsername(String username) {this.username = username;}/*** 获取* @return password*/public String getPassword() {return password;}/*** 设置* @param password*/public void setPassword(String password) {this.password = password;}public String toString() {return "User{id = " + id + ", username = " + username + ", password = " + password + "}";}}

再开始写本题

首先我们得创建集合,再创建三个用户对象,再将用户对象添加到集合中

然后就开始写方法了

 先遍历集合,再利用equals()方法判断集合里的id与我们要查找的id是否相同,相同就返回true,遍历结束都没有符合要求的就返回false

完整测试代码如下

import java.util.ArrayList;public class ArrayListTest1 {public static void main(String[] args) {//创建集合ArrayList<User>list=new ArrayList<>();//创建三个用户对象User user1=new User("1","zhangsan","111");User user2=new User("2","lisi","222");User user3=new User("3","wangwu","333");//把用户对象添加到集合中list.add(user1);list.add(user2);list.add(user3);boolean b = find(list, "1");System.out.println(b);}public static boolean find(ArrayList<User>list,String id){for (int i = 0; i < list.size(); i++) {User user=list.get(i);String userId = user.getId();if(userId.equals(id)){return  true;}}return false;}
}

 测试结果如下

test4

定义javabean类:PhonePhone属性:品牌,价格。main方法中定义一个集合,存入三个手机对象。分别为:小米,1999。苹果,8000。oppo,2999。定义一个方法,将价格低于3000的手机信息返回。

首先还是先写JavaBean类

public class Phone {private  String brand;private int price;public Phone() {}public Phone(String brand, int price) {this.brand = brand;this.price = price;}/*** 获取* @return brand*/public String getBrand() {return brand;}/*** 设置* @param brand*/public void setBrand(String brand) {this.brand = brand;}/*** 获取* @return price*/public int getPrice() {return price;}/*** 设置* @param price*/public void setPrice(int price) {this.price = price;}public String toString() {return "Phone{brand = " + brand + ", price = " + price + "}";}
}

然后在写本题主要代码

还是先创建集合,再创建三个用户对象,再将用户对象添加到集合中

接下来我们写方法 

这其实就相当于把数据都放到了一个容器中,再将容器返回

main方法中还得用集合去接收

最后在遍历返回的集合,输出我们想要的结果

完整代码如下

import java.util.ArrayList;public class ArrayListTest2 {public static void main(String[] args) {ArrayList<Phone>list=new ArrayList<>();Phone phone1=new Phone("小米",1999);Phone phone2=new Phone("苹果",8000);Phone phone3=new Phone("oppo",2999);list.add(phone1);list.add(phone2);list.add(phone3);ArrayList<Phone> phoneList = getPhone(list);for (int i = 0; i < phoneList.size(); i++) {Phone phone=phoneList.get(i);System.out.println(phone.getBrand()+","+phone.getPrice());}}public static ArrayList<Phone> getPhone(ArrayList<Phone>list){//定义一个集合用于返回ArrayList<Phone>resultList=new ArrayList<>();for (int i = 0; i < list.size(); i++) {Phone phone=list.get(i);int price=phone.getPrice();if(price<3000){resultList.add(phone);}}return resultList;}
}

测试结果

 

ArrayList的学习就到这里啦,我们下期再见!!!

继续努力

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

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

相关文章

HarmonyOS实战开发-音视频录制、如何实现音频录制和视频录制功能的应用

介绍 音视频录制应用是基于AVRecorder接口开发的实现音频录制和视频录制功能的应用&#xff0c;音视频录制的主要工作是捕获音频信号&#xff0c;接收视频信号&#xff0c;完成音视频编码并保存到文件中&#xff0c;帮助开发者轻松实现音视频录制功能&#xff0c;包括开始录制…

启动Unity发布的exe并且添加启动参数

启动Unity发布的exe并且添加启动参数 在启动Unity的时候添加一些启动的参数。 代码解释 在启动的时候获取的启动参数如果没有获取到正确的启动参数那么就退出程序&#xff0c;这个代码仅仅在发布到windows之后才会生效&#xff0c;在编辑器下这个代码虽然会获取到参数但是不能…

【YOLOv9改进[损失函数]】使用MPDIou回归损失函数帮助YOLOv9模型更优秀

本文中&#xff0c;第一部分概述了各种回归损失函数&#xff0c;当然也包括了今天的主角MPDIou。第二部分内容为在YOLOv9中使用MPDIou回归损失函数的方法。 1 回归损失函数&#xff08;Bounding Box Regression Loss&#xff09; 边界框回归损失计算的方法包括GIoU、DIoU、CI…

低频电磁仿真 | 新能源汽车性能提升的利器

永磁同步电机 新能源汽车的心脏 近年来&#xff0c;全球变暖的趋势日益加剧&#xff0c;极端天气事件层出不穷&#xff0c;这些现象都反映出当前气候形势的严峻性。为了应对这一全球性挑战&#xff0c;各国纷纷采取行动&#xff0c;制定了一系列降碳、减碳的措施。中国在2020年…

ElasticView一款ElasticSearch的web可视化工具

ElasticView 是一款用来监控ElasticSearch状态和操作ElasticSearch索引的web可视化工具。它由golang开发而成&#xff0c;具有部署方便&#xff0c;占用内存小等优点 ElasticSearch连接树管理&#xff08;更方便的切换测试/生产环境&#xff09;支持权限管理支持sql转换成dsl语…

从IoTDB的发展回顾时序数据库演进史

面向工业物联网时代&#xff0c;以 IoTDB 为代表的时序数据库加速发展。 时序数据的主要产生来源之一是设备与传感器&#xff0c;具有监测点多、采样频率高、存储数据量大等多类不同于其他数据类型的特性&#xff0c;从而导致数据库在实现高通量写入、存储成本、实时查询等多个…

第G2周:人脸图像生成(DCGAN)

第G2周&#xff1a;人脸图像生成&#xff08;DCGAN&#xff09; 第G2周&#xff1a;人脸图像生成&#xff08;DCGAN&#xff09;一、前言二、我的环境三、代码实现1、导入第三方库2、设置超参数3、导入数据 四、定义模型4.1 初始化权重4.2 定义生成器4.3 定义鉴别器 五、训练模…

2024年蓝桥杯40天打卡总结

2024蓝桥杯40天打卡总结 真题题解其它预估考点重点复习考点时间复杂度前缀和二分的两个模板字符串相关 String和StringBuilderArrayList HashSet HashMap相关蓝桥杯Java常用算法大数类BigInteger的存储与运算日期相关考点及函数质数最小公倍数和最大公约数排序库的使用栈Math类…

Go语言图像处理实战:深入image/color库的应用技巧

Go语言图像处理实战&#xff1a;深入image/color库的应用技巧 引言image/color库基础颜色模型简介颜色类型和接口 image/color库实际应用基本颜色操作创建颜色颜色值转换颜色比较 颜色转换与处理与image库结合使用 性能优化和高级技巧性能考量避免频繁的颜色类型转换使用并发处…

web服务器是如何运行的?tomcat基本原理

tomcat基本流程 tomcat在启动时将webapps下的每个项目中的web.xml读取&#xff0c;获取相关信息。tomcat只关心Servlet 程序、Filter 过滤器、Listener 监听器&#xff0c;不关心其他类。 tomcat接收到请求后会将请求报文转换成一个httpServletRequest对象&#xff0c;包含请求…

【MATLAB源码-第45期】基于matlab的16APSK调制解调仿真,使用卷积编码软判决。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 16APSK调制解调 16APSK (16-ary Amplitude Phase Shift Keying) 是一种相位调制技术&#xff0c;其基本思想是在恒定幅度的条件下&#xff0c;改变信号的相位&#xff0c;从而传送信息。 - 调制&#xff1a;在16APSK中&am…

在vue和 js 、ts 数据中使用 vue-i18n,切换语言环境时,标签文本实时变化

我的项目需要显示两种语言(中文和英文)&#xff0c;并且我想要切换语言时&#xff0c;页面语言环境会随之改变&#xff0c;目前发现&#xff0c;只能在vue中使用$t(‘’)的方式使用&#xff0c;但是这种方式只能在vue中使用&#xff0c;而我的菜单文件是定义在js中&#xff0c;…

gpt系列概述——从gpt1到chatgpt

GPT建模实战&#xff1a;GPT建模与预测实战-CSDN博客 OpenAI的GPT&#xff08;Generative Pre-trained Transformer&#xff09;系列模型是自然语言处理领域的重要里程碑。从2018年至2020年&#xff0c;该公司相继推出了GPT-1、GPT-2和GPT-3&#xff0c;这些模型在文本生…

CTFshow电子取证——内存取证1

关于内存与注册表 内存中的注册表项 当Windows操作系统启动时&#xff0c;它会将注册表的部分数据加载到内存中&#xff0c;以便系统和应用程序可以快速地访问这些信息。这些数据在内存中可以更快地被读取和修改&#xff0c;以便系统能够动态地调整其行为和配置。 系统性能和…

工业相机飞拍功能的介绍(转载学习)

转载至&#xff1a; https://baijiahao.baidu.com/s?id1781438589726948322&wfrspider&forpc

办公软件巨头CCED、WPS迎来新挑战,新款办公软件已形成普及之势

办公软件巨头CCED、WPS的成长经历 CCED与WPS&#xff0c;这两者均是中国办公软件行业的佼佼者&#xff0c;为人们所熟知。 然而&#xff0c;它们的成功并非一蹴而就&#xff0c;而是经过了长时间的积累与沉淀。 CCED&#xff0c;这款中国大陆早期的文本编辑器&#xff0c;在上…

【vue】购物车案例优化

对 购物车案例 进行优化 用watch实现全选/取消全选用watch实现全选状态的检查用computed计算总价格 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

014:vue3 van-list van-pull-refresh实现上拉加载,下拉刷新

文章目录 1. 实现上拉加载&#xff0c;下拉刷新效果2. van-list&#xff0c;van-pull-refresh组件详解2.1 van-list组件2.2 van-pull-refresh组件 3. 完整案例4. 坑点&#xff1a;加载页面会一直调用加载接口 1. 实现上拉加载&#xff0c;下拉刷新效果 通过下拉刷新加载下一页…

淘宝扭蛋机小程序:扭出惊喜,乐享购物新体验

在快节奏的现代生活中&#xff0c;人们总是在寻找新鲜、有趣的娱乐方式。淘宝扭蛋机小程序应运而生&#xff0c;为您带来前所未有的购物与娱乐结合新体验。在这里&#xff0c;每一次的扭动都充满惊喜&#xff0c;每一次的点击都带来乐趣&#xff0c;让您在购物的同时&#xff0…

4.Labview簇、变体与类(上)

在Labview中&#xff0c;何为簇与变体&#xff0c;何为类&#xff1f;应该如何理解&#xff1f;具体有什么应用场景&#xff1f; 本文基于Labview软件&#xff0c;独到的讲解了簇与变体与类函数的使用方法和场景&#xff0c;从理论上讲解其数据流的底层概念&#xff0c;从实践上…