6、投票统计,请老师检查,感谢!

来源:14-17 测评作业

mottoyin

2025-02-19

测试类
这道题我不想使用直接定义set并一个个添加,没啥意义,用Map我想更好的复习一下课堂学到的知识,虽有些复杂但挺爽,哈哈

package com.imooc.chapter14test;

import java.util.*;

public class VoteTest {
    public static void main(String[] args) {
        //定义两个String数组存放2个投票结果
        String [] strSat = {"小慕","Lily","Lucy","大毛","Tony","小刚","小慕","大毛"};
        String [] strSun = {"Tom","彭彭","Kate","彭彭","二毛"};
        //将数组通过Arrays的静态方法asList序列化成Set,去除重复元素
        Set<String> setSat = new HashSet<>(Arrays.asList(strSat));
        Set<String> setSun = new HashSet<>(Arrays.asList(strSun));
        //定义投票的Map结合
        Map<String,Set<String>> voteMap = new HashMap<>();
        //使用put方法添加Map的KV键值对
        voteMap.put("周六去",setSat);
        voteMap.put("周日去",setSun);
        //二毛临时有事,取消参加,Lily和Lucy改投周日的票,进行Map的value修改
        //使用entrySet()方法获取所有键值对
        Set<Map.Entry<String, Set<String>>> entrySet = voteMap.entrySet();
        //遍历键值对,修改后打印投票结果
        for (Map.Entry<String, Set<String>> item:
             entrySet) {
              String key = item.getKey(); //获取key的值
              if(key.equals("周六去")){ //如果key值等于周六去,删除Lily,Lucy元素
                  Set<String> tempSat = item.getValue();
                  tempSat.remove("Lily");
                  tempSat.remove("Lucy");
                  System.out.println("周六去投票数: " + tempSat.size());
                  System.out.println("周六去的人是: " + tempSat);
              }else if(key.equals("周日去")){
                  Set<String> tempSun = item.getValue();
                  tempSun.add("Lily");
                  tempSun.add("Lucy");
                  tempSun.remove("二毛");
                  System.out.println("周日去投票数: " + tempSun.size());
                  System.out.println("周日去的人是: " + tempSun);
              }
        }
    }
}

输出结果:
周六去投票数: 4
周六去的人是: [小刚, Tony, 小慕, 大毛]
周日去投票数: 5
周日去的人是: [Tom, Kate, 彭彭, Lucy, Lily]

如果有更好的思路还请彭彭老师指出,万分感谢!

写回答

1回答

彭彭老师

2025-02-20

没有问题,基础掌握的很好

0
0

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

277 学习 · 220 问题

查看课程