ArrayList的练习

该文通过一系列Java编程练习展示了如何使用ArrayList集合存储不同类型的元素,如字符串、数字及其对象,并进行遍历。练习涵盖了基础数据类型通过包装类存储、创建学生和用户对象、键盘输入数据以及根据特定条件筛选元素的方法实现。
摘要由CSDN通过智能技术生成
练习1:

定义一个集合,添加字符串,并进行遍历

遍历格式:[元素1,元素2]

代码如下:


import java.lang.reflect.Array;
import java.util.ArrayList;

public class test1 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<String> list = new ArrayList<>();
        //添加元素
        list.add("你");
        list.add("好");
        list.add("呀");
        //遍历
        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("]");
    }
}
println在输出完内容后有个回车,而print没有
练习2:

需求:定义一个集合,添加数字,并进行遍历

格式:[元素1,元素2]

集合是无法存储基本数据类型的,如何解决,用到包装类,即创建对象时,byte写其包装类Byte,一般是第一个字母大写,特殊的是char写成Character、int写成integer

import java.util.ArrayList;

public class test2 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<Integer> list = new ArrayList<>();
        //添加元素
        list.add(1);
        list.add(2);
        list.add(3);
        //遍历
        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("]");
    }
}
练习3:

需求:定义一个集合,添加学生对象,并进行遍历

学生属性:姓名,年龄


import java.util.ArrayList;

                                                  
public class student1 {                           
    //标准Javabean要求:                               
    //1、私有化成员变量                                   
    //2、空参构造方法                                    
    //3、带全部参数的构造方法                                
    //4、get/set方法                                 
    private String name;                          
    private int age;                              
    //Ctrl+D向下复制一行                                
                                                  
    public student1() {                           
    }                                             
                                                  
    public student1(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;                           
    }                                             
}                                                 
                                                  

public class test3 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<student1> list = new ArrayList<>();//结构体类型
        //创造学生对象
        student1 s1=new student1("zhangsan",21);
        student1 s2=new student1("humin",20);
        student1 s3=new student1("lihua",19);
        //添加元素
        list.add(s1);
        list.add(s2);
        list.add(s3);
        //遍历
        for (int i = 0; i < list.size(); i++) {
            student1 stu=list.get(i);
            System.out.println(stu.getName()+","+ stu.getAge());
        }
    }
}
练习4(含两个细节):

需求:定义一个集合,用键盘添加学生对象,并进行遍历

学生属性:姓名,年龄

代码如下:


import 集合_arraylist练习3.student1;

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

public class test4 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<student1> list = new ArrayList<>();//结构体类型
        Scanner sc = new Scanner(System.in);//键盘录入学生信息并添加到集合当中
        for (int i = 0; i < 3; i++) {
            student1 s=new student1();
            System.out.println("请输入学生姓名");
            String name=sc.next();
            System.out.println("请输入学生年龄");
            int age= sc.nextInt();
            //将name和age赋给学生对象
            s.setName(name);
            s.setAge(age);
            //将学生对象添加到集合当中
            list.add(s);
        }
        //遍历输出
        for (int i = 0; i < list.size(); i++) {
            student1 stu=list.get(i);
            System.out.println(stu.getName()+","+ stu.getAge());
        }
    }
}

细节1:上述代码第12行,代码循环条件是i<3,为什么不是 i < list.size(),因为此时集合没存东西,长度为零,所以此for循环无法执行。

细节2:第13行不能写在12行之前,这样会导致输出结果是3个一样的信息,因为写在外面,只创建了一个对象,输入的三个数据共用同一对象地址,导致上一个数据会被现在的数据覆盖,从而输出的三个数据都是最后一个数据。

练习5:

需求:定义一个集合,存入三个用户对象

用户属性:id,username,password

要求:定义一个方法,根据id查找对应用户信息。存在,返回true;不存在,返回false。

import java.util.ArrayList;

public class test5 {
    public static void main(String[] args) {
        ArrayList<user> list = new ArrayList<>();
        user u1=new user("001","lihua","123567");
        user u2=new user("002","zhansan","98437892");
        user u3=new user("003","lisi","42525");
        list.add(u1);
        list.add(u2);
        list.add(u3);
 boolean flag=contains(list,"001");
        System.out.println(flag);
    }
    //创建方法查询(方法建立:要干什么、需要什么、要返回值吗)
    public static boolean contains(ArrayList<user> list ,String id){
        for (int i = 0; i < list.size(); i++) {
            user u=list.get(i);
            String uid=u.getId();
            if(uid.equals(id)){
                return true;
            }
        }
//比较完后还是没有一样的
        return false;
    }
}


public class user {
    private String id;
    private String username;
    private String mi_ma;

    public user() {
    }

    public user(String id, String username, String mi_ma) {
        this.id = id;
        this.username = username;
        this.mi_ma = mi_ma;
    }

    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 getMi_ma() {
        return mi_ma;
    }

    public void setMi_ma(String mi_ma) {
        this.mi_ma = mi_ma;
    }
}
练习6:

需求:定义phone类,

属性:品牌,价格

要求:定义一个方法,将价格低于3000的手机信息返回

package 集合_arraylist练习6;

import 集合_arraylist练习5.user;

import java.util.ArrayList;

public class test6 {
    public static void main(String[] args) {
        ArrayList<phone> list = new ArrayList<>();
        phone p1=new phone("小米",1200);
        phone p2=new phone("苹果",5500);
        phone p3=new phone("锤子",2300);
        list.add(p1);
        list.add(p2);
        list.add(p3);
        ArrayList<phone> poneinlist=getphone(list);
        for (int i = 0; i < poneinlist.size(); i++) {
            phone phone=poneinlist.get(i);
            System.out.println(phone.getName()+","+phone.getJiage());
        }
    }
    public static ArrayList<phone> getphone(ArrayList<phone> list){
        //用于存储价格低于3000的手机对象
        ArrayList<phone> resultlist = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            phone p=list.get(i);
            int price=p.getJiage();
            if(price<3000){
                resultlist.add(p);
            }
        }
        return  resultlist;
    }
}

class phone{
    private String name;
    private int jiage;

    public phone() {
    }

    public phone(String name, int jiage) {
        this.name = name;
        this.jiage = jiage;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getJiage() {
        return jiage;
    }

    public void setJiage(int jiage) {
        this.jiage = jiage;
    }
}
如果需要返回多个数据,可以把这些数据放到一个容器中,放回容器。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值