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
没有问题,基础掌握的很好
00
相似问题
8、管理手机库存,请彭彭老师检查,感谢!
回答 1
7、图书管理,请彭彭老师检查,万分感谢!
回答 1