黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day11-ArrayList集合
1、集合的基本应用
数组的长度是固定的,集合的长度是可变的,集合具有自动扩容的功能。
数组可以存基本数据类型和引用数据类型,集合只能存储引用数据类型,基本数据类型只有设置成包装类才能存储在集合当中。
ArrayList成员方法
package GGG;import java.util.ArrayList;public class hhh {public static void main(String[] args) {//1、创建集合对象//泛型:限定集合中存储数据的类型ArrayList<String> list = new ArrayList<>();/*** 此时我们创建的是ArrayList的对象,而ArrayList是Java已经写好的一个类,* 这个类在底层做了一些处理* 打印对象不是地址值,而是集合中存储数据内容* 在展示的时候会用[]把所有的数据进行包裹*/System.out.println(list); //打印空集合[]//1、添加元素list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");list.add("eee");System.out.println(list); //打印添加元素之后的集合[aaa, bbb, ccc, ddd, eee]//2、删除元素boolean result = list.remove("aaa");System.out.println(result); //判断是否删除成功,trueSystem.out.println(list); //打印删除元素之后的结果[bbb, ccc, ddd, eee]String str = list.remove(1);System.out.println(str); //打印被删除的元素cccSystem.out.println(list); //打印删除元素之后的结果[bbb, ddd, eee]//3、修改元素String result2 = list.set(1,"hhh");System.out.println(result2); //打印被替换掉的元素,dddSystem.out.println(list); //打印替换元素后的集合[bbb, hhh, eee]//4、查询元素String s = list.get(0); //查询0索引上的元素System.out.println(s); //查询到元素bbbSystem.out.println(list);}
}
2、集合练习-添加字符串和整数并遍历
案例1:集合的遍历方式
需求:定义一个集合,添加字符串,并进行遍历,遍历格式参照:[元素1,元素2,元素3]。
package GGG;import java.util.ArrayList;public class hhh {public static void main(String[] args) {//1、创建集合对象//泛型:限定集合中存储数据的类型ArrayList<String> list = new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");list.add("eee");//System.out.println(list); //打印添加元素之后的集合[aaa, bbb, ccc, ddd, eee]System.out.print("[");for (int i = 0; i < list.size(); i++) {if(i == list.size() -1){System.out.print(list.get(i));} else {System.out.print(list.get(i) + ",");}}System.out.println("]");}
}
案例2:添加数字并遍历
需求:定义一个集合,添加数字,并进行遍历,遍历格式参照:[元素1,元素2,元素3]。
补充内容:基本数据类型对应的包装类如下
package GGG;import java.util.ArrayList;public class hhh {public static void main(String[] args) {//1、创建集合对象//泛型:限定集合中存储数据的类型ArrayList<Integer> list = new ArrayList<>(); //注意存储数据的类型为整数list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);System.out.println(list); //打印添加元素之后的集合//循环遍历System.out.print("[");for (int i = 0; i < list.size(); i++) {if(i == list.size() -1){System.out.print(list.get(i));} else {System.out.print(list.get(i) + ",");}}System.out.println("]");}
}
3、添加学生对象并遍历的两个练习
案例1:添加学生对象并遍历
需求:定义一个集合,添加一些学生对象,并进行遍历。学生类的属性为:姓名、年龄。
package GGG;public class Student {//1、私有化成员变量//2、空参构造方法//3、带全部参数的构造方法//4、get/set方法private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
package GGG;import java.util.ArrayList;public class hhh {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();//2、创建学生对象Student s1 = new Student("张三",23);Student s2 = new Student("李四",24);Student s3 = new Student("王二",22);//3、添加元素list.add(s1);list.add(s2);list.add(s3);for (int i = 0; i < list.size(); i++) {//i索引 list.get(i) 元素/学生对象Student stu = list.get(i);System.out.println(stu.getName() + "," + stu.getAge());}}
}
案例2:添加学生对象并遍历
需求:定义一个集合,添加一些学生对象,并进行遍历。学生类的属性为:姓名、年龄。要求:对象的数据来自键盘录入。
package GGG;public class Student {//1、私有化成员变量//2、空参构造方法//3、带全部参数的构造方法//4、get/set方法private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
package GGG;import java.util.ArrayList;
import java.util.Scanner;public class hhh {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();//2、键盘录入学生的信息,并添加到集合当中Scanner sc = new Scanner(System.in);for(int i = 0; i < 3; i++){Student s = new Student();System.out.println("请输入学生的姓名:");String name = sc.next();System.out.println("请输入学生年龄:");int age = sc.nextInt();//把name和age赋值给学生对象s.setName(name);s.setAge(age);//把学生对象添加到集合当中list.add(s);}for (int i = 0; i < list.size(); i++) {//i索引 list.get(i) 元素/学生对象Student stu = list.get(i);System.out.println(stu.getName() + "," + stu.getAge());}}
}
4、集合练习-查找用户是否存在
案例1:添加用户对象,并判断是否存在
1、main方法中定义一个集合,存入三个用户对象。
用户属性为:id,username,password
2、要求:定义一个方法,根据id查找对应的用户信息。若存在返回true,若不存在返回false
package HHH;public class User {//1、私有化成员变量//2、空参构造方法//3、带全部参数的构造方法//4、get/set方法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;}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;}
}
package HHH;import java.util.ArrayList;
import java.util.Scanner;public class Dome {public static void main(String[] args) {ArrayList<User> list1 = new ArrayList<>();//2、键盘录入学生的信息,并添加到集合当中Scanner sc = new Scanner(System.in);User u1 = new User("001", "zhangsan", "123");User u2 = new User("002", "lisi", "456");User u3 = new User("003", "wanger", "789");list1.add(u1);list1.add(u2);list1.add(u3);boolean ss = search(list1, "005");System.out.println(ss);}public static boolean search(ArrayList<User> list,String id){for (int i = 0; i < list.size(); i++) {//i索引 list.get(i) 元素/用户对象User u = list.get(i);if(u.getId().equals(id)){return true;}}return false;}}
案例2:添加用户对象,并判断是否存在
1、main方法中定义一个集合,存入三个用户对象。
用户属性为:id,username,password
2、要求:定义一个方法,根据id查找对应的用户信息。若存在返回索引,若不存在返回-1
package HHH;public class User {//1、私有化成员变量//2、空参构造方法//3、带全部参数的构造方法//4、get/set方法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;}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;}
}
package HHH;import java.util.ArrayList;
import java.util.Scanner;public class Dome {public static void main(String[] args) {ArrayList<User> list1 = new ArrayList<>();//2、键盘录入学生的信息,并添加到集合当中Scanner sc = new Scanner(System.in);User u1 = new User("001", "zhangsan", "123");User u2 = new User("002", "lisi", "456");User u3 = new User("003", "wanger", "789");list1.add(u1);list1.add(u2);list1.add(u3);int ss = search(list1, "002");System.out.println(ss);}public static int search(ArrayList<User> list,String id){for (int i = 0; i < list.size(); i++) {//i索引 list.get(i) 元素/用户对象User u = list.get(i);if(u.getId().equals(id)){return i;}}return -1;}}
5、集合练习-返回多个数据
案例1:添加手机对象,并返回要求的数据。
需求:定义Javabean类:Phone
Phone属性:品牌、价格。
main方法中定义一个集合,存入三个手机对象。
分别为:小米,1000。苹果,8000。锤子,2999。
定义一个方法,将价格低于3000的手机信息返回。
package GGGG;import java.util.ArrayList;public class PhoneDome {public static void main(String[] args) {ArrayList<Phone> list = new ArrayList<>();Phone p1 = new Phone("小米",1000);Phone p2 = new Phone("苹果",8000);Phone p3 = new Phone("锤子",2999);list.add(p1);list.add(p2);list.add(p3);//新建集合,提取方法返回的集合ArrayList<Phone> phoneInfoList = printf(list);//循环遍历新得到的集合元素for (int i = 0; i < phoneInfoList.size(); i++) {Phone phone = phoneInfoList.get(i);System.out.println(phone.getName()+","+phone.getPrice());}}//由于返回值为对象,所以用ArrayList<Phone>作为返回值类型public static ArrayList<Phone> printf(ArrayList<Phone> list){/**技巧:* 如果我们要返回多个数据,可以先把这些数据放到一个容器当中,再把容器返回* 容器可以为 集合 数组*///定义一个集合用于存储价格低于3000的手机对象ArrayList<Phone> resultList = new ArrayList<>();for (int i = 0; i < list.size(); i++) {Phone p = list.get(i);//如果当前的手机价格低于3000,那么就把手机对象添加到resultList中if(p.getPrice() < 3000){//System.out.println(p.getName());//System.out.println(p.getPrice());resultList.add(p);}}return resultList;}
}
黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day11-ArrayList集合相关推荐
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day10-字符串
1.API和API帮助文档 API:应用程序接口. 简单理解:API就是别人已经写好的东西,我们不需要自己编写,直接使用即可. JavaAPI:指的就是JDK中提供的各种功能的Java类.这些类将底层 ...
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day15-阶段项目(拼图小游戏)(上篇)
1.主界面分析 1.练习:创建主界面1 到IDEA中创建一个宽603像素,高680像素的游戏主界面 到IDEA中创建一个宽488像素,高430像素的登录界面 到IDEA中创建一个宽488像素,高500 ...
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day12-学生管理系统
基础版本: 需求:采取控制台的方式去书写学生管理系统. 分析: (1).初始菜单: (2).学生类: 属性:id.姓名.年龄.家庭住址. (3).添加功能: 键盘录入每一个学生信息并添加,满足以下要求 ...
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day14-面向对象进阶02
1.权限修饰符和代码块 1.1 权限修饰符 权限修饰符:是用来控制一个成员能够被访问的范围的. 可以修饰:成员变量.方法.构造方法.内部类. 巧计举例: private--------私有的----- ...
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day7-综合练习
1.卖飞机票 需求:机票价格按照淡季旺季.头等舱和经济舱收费.输入机票原价.月份和头等舱或者经济舱. 按照如下规则进行计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折:淡季(11月到来年4月 ...
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day4-判断和循环
1.顺序结构 顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行. 2.分支结构 1.if语句 (1).if语句的第一种格式,格式如下: if (关系表达式){语句体; } ...
- 黑马程序员Java零基础视频教程_下部(P52-P134)
黑马程序员Java零基础视频教程_下部(P52-P134) 1. 异常 1.1 异常体系介绍 1.2 编译时异常和运行时异常 1.3 异常在代码中的两个作用 1.4 JVM虚拟机默认处理异常的方式 1 ...
- 黑马程序员Java零基础视频教程_下部(P135-P200)
黑马程序员Java零基础视频教程_下部(P135-P200) 1 多线程 1.1 什么是多线程? 1.2 多线程的并发与并行 1.3 多线程的实现方式 1.3.1 继承Thread类的方式进行实现 1 ...
- 黑马程序员Java零基础视频教程_上部(P1-P80)
黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...
最新文章
- node/js 漏洞_6个可用于检查Node.js中漏洞的工具
- Refused to display 'xxx' in a frame ,because it set 'X-Frame-Options' to 'deny'.
- 前嗅ForeSpider教程:采集图片/视频/资源文件的链接地址
- i2cdetect检测不到i2c设备_I2C基础知识入门
- php奇数乘法表,PHP九九乘法表
- 中原银行签约神策数据 数据驱动构建智能服务体系
- URL、Session、Cookies、Server.Transfer、Application和跨页面传送。
- ITK:侵蚀二进制图像
- TensorFlow笔记(11) GoolgeNet
- JSP和Servlet相同点和不同点?
- 从 0 到 70%:Chrome 上位揭秘!
- 网络核心之数据交换-电路交换
- java检查文件的编码格式
- 上海计算机应用基础自考上机,2012年上海自考《计算机应用基础》上机考核大纲...
- 伴随方法:线性方程的伴随方程(Adjoint Equation)
- JavaScript 读写剪贴板之方式汇总
- html在线人数统计代码,做一个简单的网站统计和在线人数统计
- 服务器信号有杂音怎么回事,麦克风有杂音或电流声等的解决方法
- Javad 方法,方法的重载,递归,类,类的构造方法
- linux shell中'',和``的区别