我很难理解地图,我被要求使用比较器和供应商从另一个地图中制作一个具有不同键和值的 SortedMap。它对我们说“teams”键是一个团队的名称,值是团队的信息,新排序的地图以团队拥有的点为键,以团队名称的集合为值有了这些点,收集由供应商提供。我不明白我将如何做到这一点。我想通过迭代这个来验证“团队”中是否有一个带有供应商名称的键,如果有,我会将该名称保存在列表中。但在那之后我不知道我将如何构建 SortedMap。有什么建议么?
编辑:这就是我所做的。
public static <C extends Collection<String>> SortedMap<Integer, C> toTable(Map<String, Team> teams, Comparator<Integer> cmp, Supplier<C> supplier) {
SortedMap<Integer, C> sm = new TreeMap<Integer, C>(cmp);
List<C> aux= new ArrayList<C>();
C newTeam = null;
int totalNames = supplier.get().size();
while(totalNames>0) {
if(teams.containsKey(supplier.get().iterator().next()))
aux.add(supplier.get());
totalNames--;
}
int size = aux.size();
while (size>0){
sm.put(1/*how to get a new key*/,aux.iterator().next());
size--;
}
return sm;
}