MAP集合练习题

package demo;

import java.util.*;
import java.util.function.Consumer;

/*创建一个银行用户 BankUser 类,
用户信息为用户 id、
用户名 userName、
余额 balance;
(1) 利用 HashMap 存储用户信息:
id 作为键,
用户作为值,
创建多个用户对象进行存储
(2) 遍历打印输出所有银行的用户名和对应的余额
(3) 键盘输入一个用户名,检测是否存在此用户,存在-打印用户信息;不存在-打印查无此人
 (4) 打印输出余额大于 200000 的用户信息*/
public class Test18 {
    public static void main(String[] args) {
        //创建BankUser类对象
        BankUser bankUser =  new BankUser(1,"二狗",3500D);
        BankUser bankUser1 = new BankUser(2,"翠花",4500000D);

        //创建map集合
        Map<Integer,BankUser> map = new HashMap<>();
        map.put(bankUser.getId(),bankUser);
        map.put(bankUser1.getId(),bankUser1);

        //根据key值遍历map集合
        Set<Integer> set = map.keySet();
        for (Integer integer : set) {
            System.out.println(map.get(integer));
        }

        System.out.println("--------------------------");
        //(3) 键盘输入一个用户名,检测是否存在此用户,存在-打印用户信息;不存在-打印查无此人
        //设定Scanner类
        Scanner sc = new Scanner(System.in);
        //打印提示语句
        System.out.println("输入需要查询的名字");

        String sr = sc.next();
        boolean bo = false;
        //遍历map集合
        for (Integer integer : set) {
            if (sr.equals(map.get(integer).getUserName())){
                bo = true;
                System.out.println(map.get(integer));
            }
        }
        if (bo==false) System.out.println("没有这个人!滚!");


        System.out.println("------------------------------");
        //打印输出余额大于 200000 的用户信息*/
        //遍历map集合
        set.forEach(new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) {
                if (map.get(integer).getBalance()>200000){
                    System.out.println(map.get(integer));
                }
            }
        });
    }
}
//穿件BankUser类
class BankUser{
    private Integer id;
    private String userName;
    private Double balance;

    public BankUser() {
    }

    public BankUser(Integer id, String userName, Double balance) {
        this.id = id;
        this.userName = userName;
        this.balance = balance;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Double getBalance() {
        return balance;
    }

    public void setBalance(Double balance) {
        this.balance = balance;
    }

    @Override
    public String toString() {
        return "BankUser{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", balance=" + balance +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        BankUser bankUser = (BankUser) o;
        return Objects.equals(id, bankUser.id) &&
                Objects.equals(userName, bankUser.userName) &&
                Objects.equals(balance, bankUser.balance);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, userName, balance);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道了。这是一个Java练习题,涉及Map集合、遍历车站编号及名称以及计算地铁票价。 首先,我们需要创建一个Map对象,用于存储车站编号和名称的对应关系。代码如下: ```java Map<Integer, String> stationMap = new HashMap<>(); stationMap.put(1, "车公庙"); stationMap.put(2, "中心区"); stationMap.put(3, "华强北"); stationMap.put(4, "福田口岸"); stationMap.put(5, "市民中心"); // ... 其他车站编号和名称 ``` 然后,我们可以使用for循环遍历Map集合,输出车站编号和名称。代码如下: ```java for (Map.Entry<Integer, String> entry : stationMap.entrySet()) { System.out.println("车站编号:" + entry.getKey() + ",车站名称:" + entry.getValue()); } ``` 接下来,我们需要根据起点站和终点站计算地铁票价。假设票价按照距离计算,每站之间的票价为2元。可以定义一个方法来实现这个功能。代码如下: ```java public static double calculateFare(int startStation, int endStation) { int distance = Math.abs(startStation - endStation); double fare = distance * 2; return fare; } ``` 最后,我们可以在主函数中调用这个方法来计算地铁票价。代码如下: ```java int startStation = 1; int endStation = 5; double fare = calculateFare(startStation, endStation); System.out.println("起点站:" + stationMap.get(startStation) + ",终点站:" + stationMap.get(endStation) + ",票价:" + fare + "元"); ``` 这样,我们就完成了这个练习题。完整代码如下: ```java import java.util.HashMap; import java.util.Map; public class SubwayFare { public static void main(String[] args) { Map<Integer, String> stationMap = new HashMap<>(); stationMap.put(1, "车公庙"); stationMap.put(2, "中心区"); stationMap.put(3, "华强北"); stationMap.put(4, "福田口岸"); stationMap.put(5, "市民中心"); // ... 其他车站编号和名称 for (Map.Entry<Integer, String> entry : stationMap.entrySet()) { System.out.println("车站编号:" + entry.getKey() + ",车站名称:" + entry.getValue()); } int startStation = 1; int endStation = 5; double fare = calculateFare(startStation, endStation); System.out.println("起点站:" + stationMap.get(startStation) + ",终点站:" + stationMap.get(endStation) + ",票价:" + fare + "元"); } public static double calculateFare(int startStation, int endStation) { int distance = Math.abs(startStation - endStation); double fare = distance * 2; return fare; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值