ArrayList集合--存储并遍历--5个案例

案例1.存储字符串并遍历

题目:

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

思路

1.创建集合对象
2.在集合中添加字符对象
3.遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
4.遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现

代码

import java.util.ArrayList;

public class 存储字符串并遍历 {
//    需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
//    思路:
//    1.创建集合对象
//    2.在集合中添加字符对象
//    3.遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
//    4.遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
public static void main(String[] args) {
    //    1.创建集合对象
    ArrayList list=new ArrayList<>();
    //    2.在集合中添加字符对象
    list.add("张三");
    list.add("李四");
    list.add("王五");
    //    3.遍历集合
    for (int i = 0; i < list.size(); i++) {
        String s =list.get(i);
        System.out.println(s);
    }
}
}

学习点

1.创建集合对象

    ArrayList list=new ArrayList<>();

2.添加对象 add()方法

    list.add("张三");

3.遍历并输出 list.fori 然后回车

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

i 表示的是索引值,取出来的是字符串,用一个字符类型对象接收

案例2.存储学生对象并遍历

题目

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

思路

1.定义学生类
2.创建集合对象
3.创建学生对象
4.添加学生对象到集合中
5.遍历集合,采用通用的遍历格式实现

代码

import domain.Student;

import java.util.ArrayList;

public class 存储学生对象并遍历 {
//    1.定义学生类
//    2.创建集合对象
//    3.创建学生对象
//    4.添加学生对象到集合中
//    5.遍历集合,采用通用的遍历格式实现
    public static void main(String[] args) {
        //1.定义学生类
        //之前已经在domain包里创建好Student类了,这里直接调用
        //2.创建集合对象
        ArrayList list=new ArrayList<>();
        //3.创建学生对象
        Student stu1=new Student("张三1",23);
        Student stu2=new Student("张三2",23);
        Student stu3=new Student("张三3",23);
        //4.添加学生对象到集合中
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        //5.遍历集合,采用通用的遍历格式实现
        for (int i = 0; i < list.size(); i++) {
            Student stu =list.get(i);
            System.out.println(stu);
            System.out.println(stu.getName()+"  "+stu.getAge());
        }
    }
}

学习点

1.定义学生类(之前文章由详细讲解)

package domain;

public class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

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

2.打印时注意

        //5.遍历集合,采用通用的遍历格式实现
        for (int i = 0; i < list.size(); i++) {
            Student stu =list.get(i);
            System.out.println(stu);
            System.out.println(stu.getName()+"  "+stu.getAge());
        }

直接打印stu,得到的是学生对象的地址,而不是学生对象,需要进行调用,如以下结果

ArrayList集合--存储并遍历--5个案例_第1张图片

案例3.键盘录入学生对象到集合

题目

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

思路

1.定义学生类
2.创建集合对象
3.键盘录入学生对象所需要的数据
4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
5.往集合中添加学生对象
6.遍历集合,采用通用遍历格式实现

代码

import domain.Student;

import java.util.ArrayList;
import java.util.Scanner;

public class 键盘录入学生对象到集合 {
//    需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
//    学生的姓名和年龄来自于键盘录入
//    思路
//    1.定义学生类
//    2.创建集合对象
//    3.键盘录入学生对象所需要的数据
//    4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
//    5.往集合中添加学生对象
//    6.遍历集合,采用通用遍历格式实现
    public static void main(String[] args) {
        //2.创建集合对象
        ArrayList list=new ArrayList<>();
        Student stu1 = getStudent();
        Student stu2 = getStudent();
        Student stu3 = getStudent();
        //5.往集合中添加学生对象
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        //6.遍历集合,采用通用遍历格式实现
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            System.out.println(stu.getName()+"  "+stu.getAge());
        }
    }
// 选取好代码块,然后ctrl+alt+M,构成新的方法
    private static Student getStudent() {
        //3.键盘录入学生对象所需要的数据
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学生姓名");
        //next() nextInt()
        String name =sc.next();
        System.out.println("请输入学生年龄");
        int age=sc.nextInt();
        //4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        Student stu =new Student(name,age);
        return stu;
    }

}

学习点

1.getStudent()方法(该案例学习重点)

选取好代码块,然后ctrl+alt+M,构成新的方法

2.返回值类型

注意 返回的stu是Student类型,自动生成的方法是void,需要修改

3.结果截图

ArrayList集合--存储并遍历--5个案例_第2张图片

案例4.集合删除元素

题目

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

思路

1.创建集合对象
2.调用add方法,添加字符串
3.遍历集合,取出每一个字符串元素
4.加入if判断,如果是test字符串,调用remove方法删除
5.打印集合元素

代码

import java.util.ArrayList;

public class 集合删除元素 {
//    需求:创建一个存储String的集合,内部存储(test,张三,李四,test,test)字符串
//    删除所有的test字符串,删除后,将集合剩余元素打印在控制台
    //思路
//    1.创建集合对象
//    2.调用add方法,添加字符串
//    3.遍历集合,取出每一个字符串元素
//    4.加入if判断,如果是test字符串,调用remove方法删除
//    5.打印集合元素

    public static void main(String[] args) {
        //1.创建集合对象
        ArrayList list=new ArrayList<>();
        //2.调用add方法,添加字符串
        list.add("test");
        list.add("张三");
        list.add("李四");
        list.add("test");
        list.add("test");

        //list.remove("test");//根据元素进行删除的方式,只能删除集合中的第一个元素
        //3.遍历集合,取出每一个字符串元素
        for (int i = 0; i < list.size(); i++) {
            String s=list.get(i);
            //4.加入if判断,如果是test字符串,调用remove方法删除
            if("test".equals(s)){
                //用常量字符串去调用方法,避免空指针异常的情况
                list.remove(i);
                i--;
            }
        }
        System.out.println(list);
    }
}

学习点

1.remove()有两种方法,根据元素进行删除的方式,只能删除集合中的第一个元素

ArrayList集合--存储并遍历--5个案例_第3张图片

2.明明已经遍历了集合,为什么结果还是有test?

ArrayList集合--存储并遍历--5个案例_第4张图片

改进:i--

ArrayList集合--存储并遍历--5个案例_第5张图片

3.为什么??加上 i-- 就可以了

在集合中,删除完一个元素,后面的元素会自动往前补上,如果只是i++,就会遗漏掉一些数据的检验,所以需要 i-- 来退回去一个,再次进行检验

案例5.集合数据筛选

题目

定义一个方法,方法接收一个集合对象(泛型为Student),方法内部将年龄低于18的学生对象
找出并存入新集合对象,方法返回新集合

思路

1.定义方法,方法的形参定义为ArrayList list
2.方法内部定义新集合,准备用于存储筛选出的学生对象ArrayList newlist
3.遍历原集合,获取每一个学生对象
4.通过学生对象调用getAge()方法获取年龄,并判断年龄是否低于18
5.将年龄低于18的学生对象存入新集合
6.返回新集合
7.main方法中测试该方法

代码

import domain.Student;

import java.util.ArrayList;

public class 集合数据筛选 {
    //需求:定义一个方法,方法接收一个集合对象(泛型为Student),方法内部将年龄低于18的学生对象
    //找出并存入新集合对象,方法返回新集合
    //思路
    //1.定义方法,方法的形参定义为ArrayList list
    //2.方法内部定义新集合,准备用于存储筛选出的学生对象ArrayList newlist
    //3.遍历原集合,获取每一个学生对象
    //4.通过学生对象调用getAge()方法获取年龄,并判断年龄是否低于18
    //5.将年龄低于18的学生对象存入新集合
    //6.返回新集合
    //7.main方法中测试该方法
    public static void main(String[] args) {
        //7.main方法中测试该方法
        ArrayList list=new ArrayList<>();
        Student stu1=new Student("张三1",10);
        Student stu2=new Student("张三2",14);
        Student stu3=new Student("张三3",20);
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        ArrayList newlist=getList(list);
        for (int i = 0; i < newlist.size(); i++) {
            Student stu = newlist.get(i);
            System.out.println(stu.getName()+"  "+stu.getAge());
        }
    }
    //1.定义方法,方法的形参定义为ArrayList list
    public static ArrayList getList(ArrayList list){
        //2.方法内部定义新集合,准备用于存储筛选出的学生对象ArrayList newlist
        ArrayList newlist=new ArrayList<>();
        //3.遍历原集合,获取每一个学生对象
        for (int i = 0; i < list.size(); i++) {
            Student stu=list.get(i);
            //4.通过学生对象调用getAge()方法获取年龄,并判断年龄是否低于18
            int age=stu.getAge();
            if(age<18){
                //5.将年龄低于18的学生对象存入新集合
                newlist.add(stu);
            }
        }
        //6.返回新集合
        return newlist;
    }
}

学习点

1.定义新方法,注意返回值类型和参数的设置

public static ArrayList getList(ArrayList list)

ArrayList newlist=new ArrayList<>();

return newlist;

你可能感兴趣的:(算法,java,intellij-idea,数据结构)