【Java实验练习题】第七章 集合 实现三国人物的信息管理

ArrayList 遍历方式

1. 下标遍历

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

2. 增强for循环

for (Hero it : Mylist) {		//Hero是Mylist中存储的元素类型,此为Hero类
	System.out.println(it);
}

3. 迭代器遍历

Iterator<Hero> iterator = Mylist.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

for(Iterator it2 = Mylist.iterator();it2.hasNext();){
   	System.out.println(it2.next());
}

4. forEach方法遍历输出(JDK 8)

在JDK1.8之后的forEach可以直接遍历集合

//使用System.out中的println方法
Mylist.forEach(System.out :: println);
//使用Lambda表达式
Mylist.forEach(obj -> System.out.println(obj))
//使用方法引用,引用本类中的 print(Object object)方法(要先在类中创建print方法)
Mylist.forEach(ListDemo::print);

练习题目

自己选择数据结构,实现三国人物的信息管理,要求:

1、定义Hero类,属性有姓名、学号、出生日期、国别、成绩、删除状态等;

2、添加魏、蜀、吴三国人物的对象信息,统计东吴的人员数量;

3、查询对应姓名的三国人物,输出查到、未查到的结果;

4、输入某个人物的姓名,将改人物的出生日期改为2023年10月11日;

5、输入某个人物的姓名,若存在,将其删除。(逻辑删除,输出时不再显示)


具体思路

  1. 定义Hero类,属性有姓名、学号、出生日期、国别、成绩、删除状态等

    利用ArrayList创建人物列表,存Hero类,在类中实现构造、读取某个属性、修改某个属性等操作。

  2. 添加魏、蜀、吴三国人物的对象信息,统计东吴的人员数量;

    用ArrayList的add()方法添加,循环遍历列表(ArrayList的循环遍历可以看一下这个文章)查找东吴人员数量。

  3. 查询对应姓名的三国人物,输出查到、未查到的结果

    循环遍历列表,找到输出“存在”,未找到输出”不存在“。

  4. 输入某个人物的姓名,将改人物的出生日期改为2023年10月11日

    循环遍历列表,找到输入的姓名,修改出生日期。

  5. 输入某个人物的姓名,若存在,将其删除。(逻辑删除,输出时不再显示)

    循环遍历列表,找到输入的姓名,将delete属性修改为true,在循环遍历时只输出delete属性为false的即可。


代码

Main

package mytext;

import java.util.*;

public class Main {
    /*
    自己选择数据结构,实现三国人物的信息管理,要求:
            1、定义Hero类,属性有姓名、学号、出生日期、国别、成绩、删除状态等;
            2、添加魏、蜀、吴三国人物的对象信息,统计东吴的人员数量;
            3、查询对应姓名的三国人物,输出查到、未查到的结果;
            4、输入某个人物的姓名,将改人物的出生日期改为2023年10月11日;
            5、输入某个人物的姓名,若存在,将其删除。(逻辑删除,输出时不再显示)
    */
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        //利用ArrayList创建人物列表
        ArrayList<Hero> Mylist = new ArrayList<Hero>();
        System.out.println("==========================================");

        //添加魏、蜀、吴三国人物的对象信息到Mylist
        Hero h1 = new Hero("caocao", "1001", "0155-07-18","wei", 98);
        Mylist.add(h1);
        Hero h2 = new Hero("liubei", "1002", "0161-01-01","shu", 96);
        Mylist.add(h2);
        Hero h3 = new Hero("sunquan", "1003", "0182-01-01","wu", 94);
        Mylist.add(h3);
        System.out.println("==========================================");


        //统计东吴的人员数量
        int cnt = 0;
        for (int i = 0; i < Mylist.size(); i++) {
            if(Mylist.get(i).getCountry().equals("wu"))
                cnt ++;
        }
        System.out.println("country is \"wu\" number:" + cnt);
        System.out.println("==========================================");


        //查询对应姓名的三国人物,输出查到、未查到的结果
        System.out.println("请输入要查询的姓名:");
        String name1 = scan.next();
        for (int i = 0; i < Mylist.size(); i++) {
            if(Mylist.get(i).getName().equals(name1)) {
                System.out.println(name1 + "存在");
                break;
            }
            if(i == Mylist.size() - 1) {
                System.out.println(name1 + "不存在!");
            }
        }
        System.out.println("==========================================");

        //输入某个人物的姓名,将改人物的出生日期改为2023年10月11日
        System.out.println("请输入要修改生日的人的姓名:");
        String name2 = scan.next();
        for (int i = 0; i < Mylist.size(); i++) {
            if(Mylist.get(i).getName().equals(name2)) {
                Mylist.get(i).setBth("2023-10-11");
                System.out.println(name2 + "生日修改成功!");
                break;
            }
            if(i == Mylist.size() - 1) {
                System.out.println(name2 + "不存在!");
            }
        }
        System.out.println("==========================================");

        //输入某个人物的姓名,若存在,将其删除。(逻辑删除,输出时不再显示)

        //遍历Mylist中的所有成员,被删除的不输出
        System.out.println("删除前所有成员如下:");
        for(int i = 0; i < Mylist.size(); i++){
            if(Mylist.get(i).isDelete() == false)
			    System.out.println(Mylist.get(i));
		}

        //删除
        System.out.println("请输入要删除的姓名:");
        String name3 = scan.next();
        for (int i = 0; i < Mylist.size(); i++) {
            if(Mylist.get(i).getName().equals(name3)) {
                Mylist.get(i).setDelete(true);
                System.out.println(name3 + "删除成功!");
                break;
            }
            if(i == Mylist.size() - 1) {
                System.out.println(name3 + "不存在!");
            }
        }

        //删除后遍历
        System.out.println("删除后所有成员如下:");
        for(int i = 0; i < Mylist.size(); i++){
            if(Mylist.get(i).isDelete() == false)
                System.out.println(Mylist.get(i));
        }
        System.out.println("==========================================");

    }

}

Hero类

package mytext;

public class Hero {
    //属性有姓名、学号、出生日期、国别、成绩、删除状态等
    private String name;
    private String ID;
    private String bth;
    private String country;
    private int score;
    private boolean delete;

    public Hero (String name, String ID, String bth, String country, int score) {
        this.name = name;
        this.ID = ID;
        this.bth = bth;
        this.country = country;
        this.score = score;
        delete = false;
    }

    public Hero (String name, String ID, String bth, String country, int score, boolean delete) {
        super();
        this.name = name;
        this.ID = ID;
        this.bth = bth;
        this.country = country;
        this.score = score;
        this.delete = delete;
    }

    @Override
    public String toString () {
        return "Hero{" +
                "name='" + name + '\'' +
                ", ID='" + ID + '\'' +
                ", bth='" + bth + '\'' +
                ", country='" + country + '\'' +
                ", score=" + score +
                ", delete=" + delete +
                '}';
    }

    public String getName () {
        return name;
    }

    public String getID () {
        return ID;
    }

    public String getBth () {
        return bth;
    }

    public String getCountry () {
        return country;
    }

    public int getScore () {
        return score;
    }

    public boolean isDelete () {
        return delete;
    }

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

    public void setID (String ID) {
        this.ID = ID;
    }

    public void setBth (String bth) {
        this.bth = bth;
    }

    public void setCountry (String country) {
        this.country = country;
    }

    public void setScore (int score) {
        this.score = score;
    }

    public void setDelete (boolean delete) {
        this.delete = delete;
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑瓜上长蘑菇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值