Java ArrayList案例-集合的遍历

文章展示了如何使用Java创建存储字符串和学生对象的集合,并进行遍历、按条件筛选(如长度为4的字符串或年龄低于18岁的学生)以及删除特定元素(如删除所有test字符串)。还提供了一个方法用于筛选年龄低于18岁的学生并返回新集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求: 创建一个存储字符串的集合,内部存储3个字符串元素,使用程序实现在控制台遍历该操作

private static void diyi() {
        ArrayList<String> list = new ArrayList();

        list.add("张三");
        list.add("李四");
        list.add("王五");

        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
    }

运行结果
张三
李四
王五

需求: 创建一个存储字符串的集合,内部存储字符串元素
钢门吹雪,西域狂鸭,张三,甄妮玛戴妗,李四
使用程序实现在控制台遍历该操作集合,将4个字的人名,打印在控制台

private static void dier() {
        //第二种案例
        ArrayList<String> list = new ArrayList();

        list.add("钢门吹雪");
        list.add("西域狂鸭");
        list.add("张三");
        list.add("甄妮玛戴妗");
        list.add("李四");


        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            if (s.length()==4){
                System.out.println(s);
            }
        }
    }

运行结果
钢门吹雪
西域狂鸭

需求: 创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
//在控制台,展示出年龄低于18岁的学生信息

 public static void main(String[] args) {
        Student stu1=new Student("张三",23);
        Student stu2=new Student("李四",15);
        Student stu3=new Student("王五",14);

        AbstractList<Student> list = new ArrayList();
        //把对象放进Student集合容器中
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        //遍历,获取集合中所有元素
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            if (s.getAge()<18){
                System.out.println(s.getName()+"---"+s.getAge());
            }

        }

运行结果
李四—15
王五—14

集合的遍历

需求: 创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
学生的姓名年龄来自键盘录入

public static void main(String[] args) {
        //1.准备集合容器,用于存储学生对象
        AbstractList<Student> list = new ArrayList();


        for (int i = 1; i <=3 ; i++) {
            System.out.println("请输入第"+i+"个数据");
            extracted(list);
        }


        //遍历,获取集合中所有元素,打印学生信息
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            System.out.println(s.getName()+"---"+s.getAge());
        }
    }

    private static void extracted(AbstractList<Student> list) {
       //2.键盘录入学生信息
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入你的姓名");
        String s1 = sc.next();
        System.out.println("请输入你的年龄");
        int i1 = sc.nextInt();

        //3.将键盘录入的学生信息,封装为学生对象
        Student stu1 = new Student(s1,i1);


        //4.将封装好的学生对象,存入集合
        list.add(stu1);
    }

运行结果

请输入第1个数据
请输入你的姓名
张三
请输入你的年龄
20
请输入第2个数据
请输入你的姓名
李四
请输入你的年龄
30
请输入第3个数据
请输入你的姓名
王五
请输入你的年龄
22
张三—20
李四—30
王五—22

索引删除

需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串
删除所有的test字符串,删除后,将集合剩余元素打印在控制台

for (int i = 0; i < list.size(); i++) {
        String s = list.get(i);
        if ("test".equals(s)){
            list.remove(i);     //根据索引删除
            i--;
        }
    }

    总结: 在遍历集合的过程中,有删除操作
                1.正序遍历:不要忘记  --  操作
                2.倒序遍历 :不需要 --操作
public static void main(String[] args) {
        AbstractList<String> list =new ArrayList();
        list.add("test");
        list.add("张三");
        list.add("李四");
        list.add("test");
        list.add("test");

        //第一种方法
        /*for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            if ("test".equals(s)){
                list.remove(i);     //根据索引删除
                i--;
            }
        }*/


        //第二种方法
        for(int i=list.size()-1;i>=0;i--){
            String s = list.get(i);
            if ("test".equals(s)){
                list.remove(i);

            }
        }

        System.out.println(list);
    }

运行结果
[张三, 李四]

需求:定义一个方法,方法接收一个集合对象(泛型为Student)

            方法内部将年龄低于18岁的学生对象找出
            并存入新集合对象,方法返回新集合
public static void main(String[] args) {
        AbstractList<Student> list=new ArrayList<>();
        
        
        
        list.add(new Student("张三",20));
        list.add(new Student("李四",15));
        list.add(new Student("王五",12));

        //许愿法
        AbstractList<Student> newlist  =xuyuan(list);

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

    }

    private static AbstractList<Student> xuyuan(AbstractList<Student> list) {
        //1.创建新的集合容器,准备存储筛选后的学生对象
        AbstractList<Student> newlist=new ArrayList<>();
        //2.遍历原集合
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            //3.筛选(判断)
            if (s.getAge()<18){
                //4.将满足要求的学生对象,存入新集合
                newlist.add(s);
            }

        }
        return newlist;
    }

运行结果
李四—15
王五—12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值