java学习-集合

为什么有集合?

自动扩容

数组:长度固定,可以存基本数据类型和引用数据类型

集合:长度可变,可以存引用数据类型,基本数据类型的话需要包装类

ArrayList

java 复制代码
public class studentTest {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        boolean res=list.add("aaa");
        System.out.println(res); //true
        System.out.println(list);//[aaa]
        list.add("bbb");
        list.add("cccc");
        System.out.println(list); //[aaa, bbb, cccc]
        //删除
        boolean res1=list.remove("aaa");
        System.out.println(res1); //true
        System.out.println(list);//[bbb, cccc]
        //根据索引删除,返回被删除元素
        String str=list.remove(0);
        System.out.println(str);//bbb
        //修改,返回旧值
        String res2=list.set(0,"000");
        System.out.println(res2);//cccc
        System.out.println(list);//[000]
        //查询
        String str3=list.get(0);
        System.out.println(str3);//000
        //获取长度
        System.out.println(list.size());//1

    }


}

案例 创建集合,添加元素,遍历

java 复制代码
public class studentTest {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("bhjhsd");
        list.add("dwshv");
        list.add("fs2552");
        System.out.print("[");
        for (int i = 0; i <list.size() ; i++) {
            if(i==list.size()-1){
                System.out.println(list.get(i)+"]");
            }else{
                System.out.print(list.get(i)+", ");
            }
        }

    }


}

案例 定义一个集合 添加数字,遍历。

包装类

java 复制代码
public class studentTest {
    public static void main(String[] args) {
        ArrayList<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(3);
        list.add(5);
        System.out.print("[");
        for (int i = 0; i <list.size() ; i++) {
            if(i==list.size()-1){
                System.out.println(list.get(i)+"]");
            }else{
                System.out.print(list.get(i)+", ");
            }
        }
//[1, 3, 5]
    }


}

案例 添加学生类对象

java 复制代码
//存储学生信息
public class Student{

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


}
java 复制代码
public class studentTest {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        Student s1=new Student("lisa",15);
        Student s2=new Student("bob",18);
        Student s3=new Student("anna",17);
        list.add(s1);
        list.add(s2);
        list.add(s3);
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println(stu.getName()+", "+stu.getAge());
        }
    }
//lisa, 15
//bob, 18
//anna, 17

}

键盘录入学生信息:

java 复制代码
public class studentTest {
    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);

        }
        for (int i = 0; i <list.size() ; i++) {
            Student s=list.get(i);
            System.out.println(s.getName()+", "+s.getAge());
        }
//hbkjsd, 12
//dv, 15
//dvg, 13
    }


}

案例 添加用户对象并判断是否存在

java 复制代码
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;
    }
}
java 复制代码
public class userTest {
    public static void main(String[] args) {
        ArrayList<User> list =new ArrayList<>();
        User u1=new User("001","zhangsan","123456");
        User u2=new User("002","lisi","12354526");
        User u3=new User("003","wangwu","123dfssdf6");
        list.add(u1);
        list.add(u2);
        list.add(u3);
        System.out.println(contain(list,"002"));

    }
    public static boolean contain(ArrayList<User> list,String id){
        for (int i = 0; i <list.size() ; i++) {
            boolean res=list.get(i).getId().equals(id);
            if(res){
                return true;
            }
        }
        return false;
    }


}

更改,存在返回索引,不存在返回-1

java 复制代码
public class userTest {
    public static void main(String[] args) {
        ArrayList<User> list =new ArrayList<>();
        User u1=new User("001","zhangsan","123456");
        User u2=new User("002","lisi","12354526");
        User u3=new User("003","wangwu","123dfssdf6");
        list.add(u1);
        list.add(u2);
        list.add(u3);
        System.out.println(contain(list,"002"));

    }
    public static int contain(ArrayList<User> list,String id){
        for (int i = 0; i <list.size() ; i++) {
            boolean res=list.get(i).getId().equals(id);
            if(res){
                return i;
            }
        }
        return -1;
    }


}

案例 创建手机对象,低于价格的返回

java 复制代码
//把价格低于3000的返回
public class phoneTest {
    public static void main(String[] args) {
        ArrayList<Phone> list =new ArrayList<>();
        Phone p1=new Phone("xiaomi",1000);
        Phone p2=new Phone("pingguo",8000);
        Phone p3=new Phone("xchuizi",2999);
        list.add(p1);
        list.add(p2);
        list.add(p3);
        ArrayList<Phone> reslist=getPhoneInfo(list);
        for (int i = 0; i < reslist.size(); i++) {
            Phone p=reslist.get(i);
            System.out.println(p.getBrand()+", "+p.getPrice());
        }

    }
    public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){
        ArrayList<Phone> reslist=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            Phone p=list.get(i);
            int price=p.getPrice();
            if(price<3000){
                reslist.add(p);
            }
        }
        return reslist;
    }


}
相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛4 天前
计算机系统概论——校验码
学习
babe小鑫4 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms4 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下4 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。4 天前
2026.2.25监控学习
学习
im_AMBER4 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J4 天前
从“Hello World“ 开始 C++
c语言·c++·学习