学Java第二十四天---------集合练习

一、添加学生对象并遍历(遍历)

1.遍历

学生有两个属性:姓名和年龄

package com.itbaima.exe04;

import java.util.ArrayList;

public class test02 {
    public static void main(String[] args) {
        //1.创建集合
        ArrayList<Student> list=new ArrayList<>();

        //2.创建学生对象
        Student s1=new Student("小红",24);
        Student s2=new Student("小绿",25);
        Student s3=new Student("小兰",20);

        //3.添加学生对象
        list.add(s1);
        list.add(s2);
        list.add(s3);

        //4.遍历

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

2.学生对象的姓名和年龄需要自己动手输入

package com.itbaima.exe04;

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

public class test03 {
    public static void main(String[] args) {
        //1.先创建一个学生类型的集合
        ArrayList<Student> list=new ArrayList<>();

        //2.再循环,创建学生对象,并添加到集合中
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < 3; i++) {
            Student s=new Student();
            System.out.println("请输入学生名字");
            String name=sc.next();
            System.out.println("请输入学生年龄");
            int age=sc.nextInt();

            s.setAge(age);
            s.setName(name);

            list.add(s);
        }


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

二、添加用户对象并判断是否存在(查找)

package com.itbaima.exe04;

import java.util.ArrayList;

public class test04 {
    public static void main(String[] args) {
        //1.先建立一个集合
        ArrayList<User> list=new ArrayList<>();

        //2.再创建三个对象
        User u1=new User("heima001","xiaoming","123456");
        User u2=new User("heima002","xiaohong","123456789");
        User u3=new User("heima003","lvlvpao","12345");

        //3.将对象添加到集合中
        list.add(u1);
        list.add(u2);
        list.add(u3);

        //4.利用方法判断索要查询的id是否在list中
        boolean flag=contains(list,"heima005");

        System.out.println(flag);
    }

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

其实就是在集合中查找指定元素-------------采用遍历的方法

改编:如果不是返回true/false,而是找到返回索引,找不到返回-1

代码如下:

package com.itbaima.exe04;

import java.util.ArrayList;

public class test05 {
    public static void main(String[] args) {
        //1.先建立一个集合
        ArrayList<User> list=new ArrayList<>();

        //2.再创建三个对象
        User u1=new User("heima001","xiaoming","123456");
        User u2=new User("heima002","xiaohong","123456789");
        User u3=new User("heima003","lvlvpao","12345");

        //3.将对象添加到集合中
        list.add(u1);
        list.add(u2);
        list.add(u3);

        //4.利用方法判断索要查询的id是否在list中
        int flag=getIndex(list,"heima002");

        System.out.println(flag);
    }

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

但其实可以把contains()函数和getIndex()函数整合在一块

代码如下:(仅考虑了函数,其余代码和上面的一样)

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

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

三、添加手机对象并返回要求的数据

技巧:返回多个数据的方法:先把这些数据放到一个容器中,再返回该容器

package com.itbaima.exe04;

import java.util.ArrayList;

public class test06 {
    public static void main(String[] args) {
        //1.先创建一个集合
        ArrayList<Phone> list=new ArrayList<>();

        //2.再创建三个phone对象
        Phone p1=new Phone("小米",2999);
        Phone p2=new Phone("huawei",5000);
        Phone p3=new Phone("三星",1000);

        //3.将三个元素添加到集合中
        list.add(p1);
        list.add(p2);
        list.add(p3);

        //4.得到满足条件的phonelist
        ArrayList<Phone> phonelist=getPhoneInfo(list);

        //5.遍历所得到的phonelist
        for (int i = 0; i < phonelist.size(); i++) {
            System.out.println(phonelist.get(i).getBrand()+","+phonelist.get(i).getPrice());
        }

    }

    //定义一个方法,把价格低于3000的手机信息返回
    public static ArrayList<Phone> getPhoneInfo(ArrayList<Phone> list){
        //先定义一个容器,用来装满足条件的手机
        ArrayList<Phone> phonelist=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getPrice()<3000){
                phonelist.add(list.get(i));
            }
        }
        return phonelist;
    }
}

记住:

集合的元素------list.get(i)

集合的类型--------ArrayList<Phone>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值