package test01;
import test.User;
import java.util.*;
/**
* 把Map集合中value值相同的Key取出来
*/
public class Map {
public static void main(String[] args) {
Map<String, Object> Test = new HashMap<>();
Test.put("玩家2", "匹配实体1");
Test.put("玩家4", "匹配实体1");
Test.put("玩家5", "匹配实体3");
Test.put("玩家7", "匹配实体1");
Test.put("玩家8", "匹配实体3");
Test.put("玩家10", "匹配实体1");
Test.put("玩家11", "匹配实体3");
Map<Object, List<Object>> send = new HashMap<Object, List<Object>>();
Iterator it = Test.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String key = (String) entry.getKey();//获取key
Object value = entry.getValue();//获取value
if (send.containsKey(value)) { //send有相同的值时
List<Object> list = send.get(value);
list.add(key); //list增加当前规则的玩家
send.put(value, list); //如果规则重复,则list覆盖
} else { //send没有相同的值时 new 一个新的
List<Object> list = new ArrayList<Object>();
list.add(key);
send.put(value, list); //将规则设为key值
}
}
}
System.out.println("send的数据为:" + send.toString());
}