集合ArrayList

代码:

		//1.创建集合的对象
        //泛型:限定集合中存储数据的类型
        // ArrayList<string>list = new ArrayList<string>();
        // JDK7:
        //此时我们创建的是ArrayList的对象,而ArrayList是java已经写好的一个类
        // 这个类在底层做了一些处理
        // 打印对象不是地址值,而是集合中存储数据内容
        // 在展示的时候会拿[]把所有的数据进行包裹
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

增删改查:

package ArrayList;

import java.util.ArrayList;

public class demo2 {
    public static void main(String[] args) {
        //实现增删改查
        ArrayList<String> list = new ArrayList<>();
        //增加,返回值是boolean
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        System.out.println(list);

        //删除
        //方法一,返回值是boolean
        list.remove("aaa");
        System.out.println(list);
        //方法二,返回值是被删除的值
        String s = list.remove(0);
        System.out.println(s);
        System.out.println(list);

        //修改
        list.set(0,"asd");
        System.out.println(list);

        //查询元素
        String s1 = list.get(0);
        System.out.println(s1);

        //获取集合长度
        int length = list.size();
        System.out.println(length);

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

练习1:

代码描述:该函数的功能是将一个字符串数组通过循环遍历的方式,以特定格式打印出来。

package ArrayList;

import java.util.ArrayList;

public class demo3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("asd");
        list.add("fgh");
        list.add("jkl");
        list.add("qwe");
        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.println("]");
    }
}

练习2:

代码描述:通过调用find()方法,从一个ArrayList中筛选出价格低于等于3000的手机对象,并将筛选结果存储到另一个ArrayList中,最后打印出筛选结果的手机品牌和价格。

Phone类的定义:

在这里插入图片描述

package ArrayList;

import java.util.ArrayList;

public class PhoneTest {
    public static void main(String[] args) {
        // 创建Phone的ArrayList集合
        ArrayList<Phone> list = new ArrayList<>();
        Phone p1 = new Phone("小米", 1000);
        Phone p2 = new Phone("华为", 8000);
        Phone p3 = new Phone("锤子", 2999);

        list.add(p1);
        list.add(p2);
        list.add(p3);

        ArrayList<Phone> end = find(list);

        for (int i = 0; i < end.size(); i++) {
            System.out.println(end.get(i).getBrand() + " " + end.get(i).getPrice());
        }
    }

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

练习3:

代码描述:通过用户输入,动态创建并存储学生的姓名和年龄信息到一个ArrayList中,并遍历输出所有学生的姓名和年龄。

Student类定义:

在这里插入图片描述

package ArrayList;

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

public class StudentTest {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要录入学生信息个数:");
        int count = sc.nextInt();

        for (int i = 0; i < count; i++) {
            System.out.println("请输入姓名:");
            String name = sc.next();
            System.out.println("请输入年龄:");
            int age = sc.nextInt();
            Student stu1 = new Student(name, age);
            list.add(stu1);
        }

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

练习3:

该函数主要实现以下功能:
创建一个用户列表并初始化三个用户对象。通过用户输入的ID,在用户列表中查找用户。如果找到用户,则输出该用户的索引;如果未找到用户,则输出提示信息"该用户不存在"。其中,函数getIndex(list, input)用于在用户列表中查找输入ID对应的用户的索引,返回索引值;函数find(list, input)用于判断用户列表中是否存在输入ID的用户,返回布尔值。

User类:

在这里插入图片描述

package ArrayList;

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

public class UserTest {
    public static void main(String[] args) {
        ArrayList<User> list = new ArrayList<>();

        User u1 = new User("001", "Sunhsine", "123456");
        User u2 = new User("002", "九色鹿", "234567");
        User u3 = new User("003", "露露水", "345678");

        list.add(u1);
        list.add(u2);
        list.add(u3);

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入ID:");
        String input = sc.next();
        int index = getIndex(list, input);
        boolean flag = find(list, input);
        if (flag) {
            System.out.println("当前用户索引:" + index);
        } else {
            System.out.println("该用户不存在");
        }
    }

    public static boolean find(ArrayList<User> list, String input) {
        return getIndex(list, input) >= 0 ? true : false;
    }

    public static int getIndex(ArrayList<User> list, String input) {
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getId().equals(input)) {
                return i;
            }
        }
        return -1;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值