java后端开发day17--ArrayList--集合
- 人工智能
- 2025-08-29 11:36:03

(以下内容全部来自上述课程)
1.集合和数组差不多,但能自动扩容。
1.集合存储数据类型的特点 可以存引用数据类型。可以存基本数据类型,但要变成包装类。 2.集合和数组的对比 1.长度 数组:长度固定集合:长度可变 2.存储类型 数组:可以存基本数据类型和引用数据类型。集合:引用数据类型和基本数据类型—>包装类。 3.定义泛型(E):限定集合中存储数据的类型
ArrayList<String> list = new ArrayList<>(); //[]解释: 此时我们创建的是ArrayList的对象,而ArrayList是Java已经写好的一个类。 这个类在底层做了一些处理。 打印对象不是地址值,而是集合中存储数据内容。 在展示的时候会拿[ ]把所有的数据进行包裹。
4.成员方法–增删改查 boolean add(E e) 添加元素,返回值表示是否添加成功boolean remove(E e) 删除指定元素,返回值表示是否删除成功E remove(int index) 删除指定索引的元素,返回被删除元素E set(int index,E e) 修改指定索引下的元素,返回原来的元素E get(int index) 获取指定索引的元素int size 集合的长度,也就是集合中元素的个数 package ArrayList; import java.util.ArrayList; public class ArrayListDemo1 { public static void main(String[] args) { //1.创建一个集合 ArrayList<String> list = new ArrayList<>(); //2.添加元素 list.add("aaa"); list.add("aaa"); list.add("bbb"); list.add("ccc"); //3.删除元素 boolean result1 = list.remove("aaa"); System.out.println(result1); //true System.out.println(list); //[aaa, bbb, ccc] boolean result2 = list.remove("ddd"); System.out.println(result2); //false System.out.println(list); //[aaa, bbb, ccc] String s = list.remove(0); System.out.println(s); //aaa System.out.println(list); //[bbb, ccc] //4.修改元素 String result3 = list.set(0, "ddd"); System.out.println(result3); //bbb System.out.println(list); //[ddd, ccc] //5.查询元素 String result4 = list.get(0); System.out.println(result4); //ddd System.out.println(list); //[ddd, ccc] //6.遍历集合 for(int i = 0; i < list.size(); i++){ String s1 = list.get(i); //[ddd, ccc] System.out.println(s1); //ddd ccc } } } 2.练习 1.集合的遍历方式需求:定义一个集合,添加字符串,并进行遍历。 遍历格式参照:[元素1,元素2,元素3]。
package ArrayList; import java.util.ArrayList; public class Test1 { public static void main(String[] args) { /*需求:定义一个集合,添加字符串,并进行遍历。 遍历格式参照:[元素1,元素2,元素3]。*/ //1.创建一个集合 ArrayList<String> list = new ArrayList<>(); //2.添加元素 list.add("aaa"); list.add("aaa"); list.add("bbb"); list.add("ccc"); //3.遍历集合 System.out.print("["); for(int i = 0; i < list.size(); i++){ String s = list.get(i); if(i == list.size() - 1){ System.out.println(s + "]"); } else { System.out.print(s + ","); } } } } 2.添加数字并遍历(包装类)需求:定义一个集合,添加数字,并进行遍历。 遍历格式参照:[元素1,元素2,元素3]。
package ArrayList; import java.util.ArrayList; public class Test1 { public static void main(String[] args) { /*需求:定义一个集合,添加数字,并进行遍历。 遍历格式参照:[元素1,元素2,元素3]。*/ //1.创建一个集合 ArrayList<Integer > list = new ArrayList<>(); //2.添加数字 //jdk5以后,int 类型可以自动装箱成Integer类型 list.add(1); list.add(2); list.add(3); list.add(4); //3.遍历集合 System.out.print("["); for(int i = 0; i < list.size(); i++){ Integer s = list.get(i); if(i == list.size() - 1){ System.out.println(s + "]"); } else { System.out.print(s + ","); } } } } 3.添加学生对象并遍历1需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。
1.有类:Javabean
package ArrayList; 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 + "}"; } }2.行为主体
package ArrayList; import java.util.ArrayList; public class Test2 { public static void main(String[] args) { /*需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。*/ //1.创建一个集合 ArrayList<Student> list = new ArrayList<>(); //2.创建学生对象 Student s1 = new Student("张三",18); Student s2 = new Student("李四",19); Student s3 = new Student("王五",20); //3.把学生对象添加到集合中 list.add(s1); list.add(s2); list.add(s3); //4.遍历集合 for(int i = 0; i < list.size(); i++){ Student s = list.get(i); System.out.println(s.getName() + "," + s.getAge()); } } } 4.添加学生对象并遍历2需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。 要求:对象的数据来自键盘录入
package ArrayList; import java.util.ArrayList; import java.util.Scanner; public class Test3 { public static void main(String[] args) { //1.定义一个集合 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(); s.setName(name); //把键盘录入的姓名,赋值给学生对象 System.out.println("请输入学生的年龄:"); int age = sc.nextInt(); s.setAge(age); //把键盘录入的年龄,赋值给学生对象 list.add(s); //把学生对象添加到集合中 } //3.遍历集合 for(int i = 0; i < list.size(); i++){ Student s = list.get(i); System.out.println(s.getName() + "," + s.getAge()); } } } 5.添加用户对象并判断是否存在1需求: 1.main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2.要求:定义一个方法,根据id查找对应的用户信息。 如果存在,返回true 如果不存在,返回false
1.有对象:Javabean,也就是泛型(虽然有点儿不一样,但大差不差)
package ArrayList; public class User { private int id; private String username; private String password; public User() { } public User(int id, String username, String password) { this.id = id; this.username = username; this.password = password; } /** * 获取 * @return id */ public int getId() { return id; } /** * 设置 * @param id */ public void setId(int 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 + "}"; } }2.行为主体
package ArrayList; import java.util.ArrayList; public class Test4 { public static void main(String[] args) { /*需求: 1.main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2.要求:定义一个方法,根据id查找对应的用户信息。 如果存在,返回true 如果不存在,返回false*/ //1.创建集合 ArrayList<User> list = new ArrayList<>(); //2.创建用户对象 User u1 = new User(1,"张三","123456"); User u2 = new User(2,"李四","123456"); User u3 = new User(3,"王五","123456"); //3.把用户对象添加到集合中 list.add(u1); list.add(u2); list.add(u3); //4.调用方法 boolean flag = get(list,1); System.out.println(flag); } public static boolean get(ArrayList<User> list,int id){ for(int i = 0; i < list.size(); i++){ User u = list.get(i); if(u.getId() == id){ return true; } } return false; } } 6.添加用户对象并判断是否存在2需求: 1.main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2.要求:定义一个方法,根据id查找对应的用户信息。 如果存在,返回索引 如果不存在,返回-1
package ArrayList; import java.util.ArrayList; public class Test4 { public static void main(String[] args) { /*需求: 1.main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2.要求:定义一个方法,根据id查找对应的用户信息。 如果存在,返回索引 如果不存在,返回-1*/ //1.创建集合 ArrayList<User> list = new ArrayList<>(); //2.创建用户对象 User u1 = new User(1,"张三","123456"); User u2 = new User(2,"李四","123456"); User u3 = new User(3,"王五","123456"); //3.把用户对象添加到集合中 list.add(u1); list.add(u2); list.add(u3); //4.调用方法 int index = get(list,1); System.out.println(index); } public static int get(ArrayList<User> list,int id){ for(int i = 0; i < list.size(); i++){ User u = list.get(i); if(u.getId() == id){ return i; } } return -1 ; } } 7.添加手机对象并返回要求的数据需求: 定义Javabean类:Phone Phone属性:品牌,价格。 main方法中定义一个集合,存入三个手机对象。 分别为:小米,1000.苹果,8000.锤子2999. 定义一个方法,将价格低于3000的手机信息返回。
1.Javabean
package ArrayList; public class Phone { private String brand; private double price; public Phone() { } public Phone(String brand, double 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 double getPrice() { return price; } /** * 设置 * @param price */ public void setPrice(double price) { this.price = price; } public String toString() { return "Phone{brand = " + brand + ", price = " + price + "}"; } }2.行为主体
package ArrayList; import java.util.ArrayList; public class Test5 { public static void main(String[] args) { /*需求: 定义Javabean类:Phone Phone属性:品牌,价格。 main方法中定义一个集合,存入三个手机对象。 分别为:小米,1000.苹果,8000.锤子2999. 定义一个方法,将价格低于3000的手机信息返回。*/ //1.定义一个集合 ArrayList<Phone> list = new ArrayList<>(); //2.创建手机对象 Phone p1 = new Phone("小米",1000); Phone p2 = new Phone("苹果",8000); Phone p3 = new Phone("锤子",2999); //3.把手机对象添加到集合中 list.add(p1); list.add(p2); list.add(p3); //4.调用方法 ArrayList<Phone> list1 = getPhone(list); for (int i = 0; i < list1.size(); i++) { Phone p = list1.get(i); System.out.println(p.getBrand()+","+p.getPrice()); } } //定义一个方法,将价格低于3000的手机信息返回 public static ArrayList<Phone> getPhone(ArrayList<Phone> list){ ArrayList<Phone> list1 = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { Phone p = list.get(i); if(p.getPrice()<3000){ list1.add(p); } } return list1; } }java后端开发day17--ArrayList--集合由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java后端开发day17--ArrayList--集合”