(day5) 自学Java——ArrayList集合
目录
1. ArrayList
2.集合练习
(1)添加字符串和整数,并遍历
(2)添加学生对象并遍历
(3)查找用户是否存在
(4)返回多个数据
1. ArrayList
数组有个致命的弱点,那就是创建时需要指定其长度,并且在使用时长度不可改变。
在Java教程中知道,要统计的数据量不可能是固定不变的,所以我们需要一个拥有可变长度的容器来储存,而这个容器就是集合。
创建集合:ArrayList<String> list = new ArrayList<>();
增删改查:
集合中不能直接添加基本数据类型,要变成对应包装类
2.集合练习
(1)添加字符串和整数,并遍历
- 需求:定义一个集合,添加字符串,并进行遍历
- 遍历格式参照:[元素1,元素2,元素3]。
import java.util.ArrayList;public class ArraryListTest {public static void main(String[] args) {ArrayList<String> sl=new ArrayList<>();sl.add("树深时见鹿");sl.add("溪午不闻钟");sl.add("野竹分青霭");sl.add("飞泉挂碧峰");String result="";String end="";for (int i = 0; i < sl.size(); i++) {if (i==sl.size()-1){end=sl.get(i);}else {result=result+sl.get(i)+",";}}String resultEnd=result+end;System.out.println("["+resultEnd+"]");}
}
- 需求:定义一个集合,添加数字,并进行遍历。
- 遍历格式参照:[元素1,元素2,元素3]。
import java.util.ArrayList;public class ArraryListTest {public static void main(String[] args) {ArrayList<Integer> sl=new ArrayList<>();sl.add(1);sl.add(2);sl.add(3);sl.add(4);String result="";Integer end=0;for (int i = 0; i < sl.size(); i++) {if (i==sl.size()-1){end=sl.get(i);}else {result=result+sl.get(i)+",";}}String resultEnd=result+end;System.out.println("["+resultEnd+"]");}
}
(2)添加学生对象并遍历
- 需求:定义一个集合,添加一些学生对象,并进行遍历
- 学生类的属性为:姓名,年龄。
import java.util.ArrayList;public class ArraryListTest {public static void main(String[] args) {//1.创建集合ArrayList<Student> sl=new ArrayList<>();//2.创建学生对象Student s1=new Student("张三",20);Student s2=new Student("李四",21);Student s3=new Student("赵五",22);//3.将对象添加到集合sl.add(s1);sl.add(s2);sl.add(s3);for (int i = 0; i < sl.size(); i++) {System.out.println(sl.get(i).getName()+","+sl.get(i).getAge());}}
}
- 需求:定义一个集合,添加一些学生对象,并进行遍历
- 学生类的属性为:姓名,年龄。
- 对象的数据来自键盘录入。
import java.util.ArrayList;
import java.util.Scanner;public class ArraryListTest {public static void main(String[] args) {//1.创建集合ArrayList<Student> sl=new ArrayList<>();Scanner sc=new Scanner(System.in);//2.创建学生对象,给对象赋值for (int i = 0; i < 3; i++) {//会创建3个对象,将3个不同的地址放到集合Student stu=new Student();System.out.print("请输入姓名:");String name=sc.next();stu.setName(name);System.out.print("请输入年龄:");int age=sc.nextInt();stu.setAge(age);sl.add(stu);}//遍历for (int i = 0; i < sl.size(); i++) {System.out.println(sl.get(i).getName()+","+sl.get(i).getAge());}}
}
(3)查找用户是否存在
需求:
- 1.main方法中定义一个集合,存入三个用户对象。用户属性:id,username,password
- 2.要求:定义一个方法,根据id查找对应的用户信息。如果存在返回true,不存在返回false。
//用户类
public class Users {private String id;private String username;private String password;public Users() {}public Users(String id, String username, String password) {this.id = id;this.username = username;this.password = password;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
import java.util.ArrayList;public class ArraryListTest {public static void main(String[] args) {//1.创建集合ArrayList<Users> sl=new ArrayList<>();Users u1=new Users("a01","zhangsan","123456");Users u2=new Users("a02","lisi","abcdef");Users u3=new Users("a03","zhaowu","abc123");sl.add(u1);sl.add(u2);sl.add(u3);System.out.println(search(sl,"a01"));}public static boolean search(ArrayList<Users> sl,String id) {for (int i = 0; i < sl.size(); i++) {if(sl.get(i).getId().equals(id)){return true;}}return false;}
}
(4)返回多个数据
- 添加手机对象并返回要求的数据
- 需求:定义Javabean类:Phone。Phone属性:品牌,价格。
- main方法中定义一个集合,存入三个手机对象。
- 分别为:小米,1000;苹果,8000;锤子2999.
- 定义一个方法,将价格低于3000的手机信息返回。
import java.util.ArrayList;public class ArraryListTest {public static void main(String[] args) {//1.创建集合ArrayList<Phone> sl=new ArrayList<>();//2.创建对象并添加入集合Phone p1=new Phone("小米",1000);Phone p2=new Phone("苹果",8000);Phone p3=new Phone("锤子",2999);sl.add(p1);sl.add(p2);sl.add(p3);//调用compare方法,将价格低于3000的手机信息返回ArrayList<Phone>result=compare(sl);//遍历for (int i = 0; i < result.size(); i++) {System.out.println(result.get(i).getBrand()+","+result.get(i).getPrice());}}
//如果我们要返回多个数据,可以把这些数据先放到一个容器中,再把容器返回(容器可以是集合/数组)public static ArrayList<Phone> compare(ArrayList<Phone> sl) {ArrayList<Phone> result=new ArrayList<>();for (int i = 0; i < sl.size(); i++) {if(sl.get(i).getPrice()<3000){String brand=sl.get(i).getBrand();int price=sl.get(i).getPrice();Phone p=new Phone(brand,price);result.add(p);}}return result;}
}
(day5) 自学Java——ArrayList集合相关推荐
- java ArrayList集合
ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类).在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来 ...
- java ArrayList集合概述和基本使用 基础
数组与ArrayList的区别: 1.数组的长度不可以发生改变 2.ArrayList集合的长度是可以随意发生变化 常用 ArrayList() 构造一个初始容量为 10 的空 ...
- Java ArrayList集合常用方法
创建对象:与其他普通的引用数据类型创建方式完全相同,但要指定容器中存储的数据类型: ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数 ...
- Java学习之路-day-09 ArrayList集合
Java ArrayList集合 每日一句 1. ArrayList 1.1 ArrayList类概述 1.2 ArrayList类常用方法 1.3 ArrayList存储字符串并遍历 1.4 Arr ...
- java print快捷键_Java的ArrayList集合使用---唐代诗人斗地主!!!
一.集合如何实现斗地主? 我们现实生活中关于斗地主,首先要有一副牌,然后把牌洗一下,在然后发牌,最后抢地主!因此斗地主需要以下的5步! 创建牌盒,定义一个集合对象,用ArrayList实现 往牌盒里装 ...
- java 集合自定义元素_java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。...
import java.util.*;/*将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据封装 ...
- Java的ArrayList集合_JAVA之ArrayList集合
/** * ArrayList集合讲解 * 集合的添加.遍历.删除 */ package com.test; import java.util.*; public class test7 { /** ...
- (Java)ArrayList集合
ArrayList集合概述和基本使用 ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类. 数组的长度不可以发生改变,但是ArrayList的长度是可以随时变化的 对于Ar ...
- JAVA之ArrayList集合
/** * ArrayList集合讲解 * 集合的添加.遍历.删除 */ package com.test; import java.util.*; public class test7 { / ...
最新文章
- vc++ mfc 非客户区 描绘线_决战客户端技术
- Modbus协议栈开发笔记之八:Modbus ASCII Master开发
- 魔兽争霸III 1.20, 1.21 1.22 需要特定语言版本之Window 解决办法
- 文本序号添加/移除工具
- maven+springMvc+velocity
- 朝鲜黑掉韩国政府版 Word
- 判断文件格式并输出文件流
- 一千行代码铸造Terminal文本编辑器
- haneWIN NFS Server for Windows
- html用css设置图片大小,css如何设置图片大小?
- PR视频剪辑(项目包装)
- blockchain 初步了解区块链
- “自学IT能走多远”
- 遇到一位贵人是什么体验,贵人到底有多重要?
- Android系统移植与调试之-------build.prop文件详细赏析
- 【nodejs】c++ addon 官方例子:nodejs调用c++
- Windows 11系统设置文件夹默认显示方式为“大图标”的方法
- 什么是3G工程师,3G工程师知识储备
- 打印_battery_status.scale
- 【iot-manager】(1)IOT商业化和未来竞争、淘汰还在继续,需要折腾一个开源IOT系统,参考Rancher开源Octopus:IoT设备管理系统做一个物联网管理系统