Java零基础学习Day12——集合ArrayList

一、基本使用

1. 集合与数组

集合只存引用数据类型;长度可变

数组可存基本数据类型、引用数据类型;长度固定

2. 基本格式

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

3. 方法

增、删

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("Hello");  // Adding strings to the list
        list.add("World");
        list.add("Java");   // Adding more strings
        list.add("Python");

        boolean result1 = list.remove("Hello");  // Removing "Hello"
        System.out.println(result1);
        System.out.println(list);

        boolean result2 = list.remove("Word");
        System.out.println(result2);
        System.out.println(list);

        String str = list.remove(0);
        System.out.println(str);
        System.out.println(list);
    }
}

改、查

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("Hello");  // Adding strings to the list
        list.add("World");
        list.add("Java");   // Adding more strings
        list.add("Python");

        //改
        String result = list.set(0, "hi");
        System.out.println(result);
        System.out.println(list);
        //查
        String s = list.get(0);
        System.out.println(s);

        System.out.println("对集合进行遍历:");
        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }
    }
}

 

二、练习

1. 集合的遍历方式

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("他");  // Adding strings to the list
        list.add("是");
        list.add("笨");   // Adding more strings
        list.add("蛋");

        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.print("]");
    }
}

2. 添加数字并遍历

基本数据类型对应的包装类

byteByte
shortShort
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter
intInteger

 

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();

        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);

        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.print("]");
    }
}

 

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Character> list = new ArrayList<>();

        list.add('a');
        list.add('b');
        list.add('c');
        list.add('d');

        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.print("]");
    }
}

 

3. 添加学生对象并遍历

指定学生对象

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        Student s1 = new Student("张三", 18);
        Student s2 = new Student("李四", 19);
        Student s3 = new Student("王五", 20);
        Student s4 = new Student("赵六", 21);
        Student s5 = new Student("钱七", 22);

        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);

        for (int i = 0; i < list.size(); i++) {
            Student str = list.get(i);
            System.out.println(str.getName() + " " + str.getAge());
        }
    }
}

 

键盘录入学生对象

import java.util.ArrayList;
import java.util.Scanner;
public class StringDemo {
    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 s = new Student();
            System.out.println("Enter student name: ");
            s.setName(sc.next());
            System.out.println("Enter student age: ");
            s.setAge(sc.nextInt());

            list.add(s);
        }
        System.out.println(list.size());
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getName()+"\t"+list.get(i).getAge());
        }
    }
}

 

4. 添加用户对象并判断是否存在

返回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;
    }

    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 StringDemo {
    public static void main(String[] args) {
        ArrayList<User> list = new ArrayList<>();
        User u1 = new User("001", "张三", "123456");  // 创建用户对象
        User u2 = new User("002", "李四", "654321");
        User u3 = new User("003", "王五", "123fjie");
        list.add(u1);                                  // 将用户对象添加到集合中
        list.add(u2);
        list.add(u3);

        int index = getIndex(list, "003");          // 调用contains方法判断集合中是否包含指定ID的用户
        System.out.println(index);                   // 输出结果      2
        System.out.println(contains(list, "003"));   // 输出结果      true
    }
    public static int getIndex(ArrayList<User> list, String id) {
        for (int i = 0; i < list.size(); i++) {
            User u = list.get(i);                      // 获取集合中的每个用户对象
            if (u.getId().equals(id)) {                // 判断用户ID是否与输入的ID匹配
                return i;
            }
        }
        return -1;
    }

    public static boolean contains(ArrayList<User> list, String id) {
        return getIndex(list, id) != -1;
    }
}

 

4. 返回多个数据

有两个方法,一个是视频里的,一个是我写的

import java.util.ArrayList;
public class StringDemo {
    public static void main(String[] args) {
        ArrayList<Phone> list = new ArrayList<>();
        Phone p1 = new Phone("VIVO", 1000);  // 创建用户对象
        Phone p2 = new Phone("oppo", 8000);
        Phone p3 = new Phone("三星", 2999);
        list.add(p1);                                  // 将用户对象添加到集合中
        list.add(p2);
        list.add(p3);

        ArrayList<Phone> newList = getPhoneInfo(list);
        for(int i = 0; i<newList.size(); i++){
            System.out.println(newList.get(i).getBrand() + " " + newList.get(i).getPrice());
        }
        System.out.println("=========================");
        getPhoneInfo_myself(list);
    }
    public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list) {
        ArrayList<Phone> newList = new ArrayList<>();      // 创建一个新的集合用于存储符合条件的用户
        for (int i = 0; i < list.size(); i++) {
            Phone p = list.get(i);                      // 获取集合中的每个用户对象
            if (p.getPrice()<3000) {                // 判断用户ID是否与输入的ID匹配
                newList.add(p);                      // 如果匹配,则将该用户对象添加到新集合中
            }                                       // 如果不匹配,则继续循环
        }                                       // 循环结束后,返回新集合
        return newList;
    }

    public static void getPhoneInfo_myself(ArrayList<Phone> list) {
        for (int i = 0; i < list.size(); i++) {
            Phone p = list.get(i);                      // 获取集合中的每个用户对象
            if (p.getPrice()<3000) {                // 判断用户ID是否与输入的ID匹配
                System.out.println(p.getBrand() + " " + p.getPrice());
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值