获取HashMap的最小键和整数<;T1,设置<;T2>&燃气轮机;使用Java8方式
我知道如何从获取HashMap的最小键和整数<;T1,设置<;T2>&燃气轮机;使用Java8方式,java,java-8,Java,Java 8,我知道如何从HashMap获取最小键和元素: 为什么不分两步进行: 在所有集合中查找最小值 查找包含具有此值的集合的任何映射项 因为可能没有这样的值,所以应该使用Optional作为返回类型。 您应该在参数类型中使用通配符,以提供更灵活的API: public static<T1, T2> Optional<Map.Entry<T1, Set<T2>>> getMinimumKeyAndElement(Map<? extends T1,? e
HashMap
获取最小键和元素:
为什么不分两步进行:
public static<T1, T2> Optional<Map.Entry<T1, Set<T2>>> getMinimumKeyAndElement(Map<? extends T1,? extends Set<? extends T2>> mapOfSet){
T2 minValue = mapOfSet.values().stream().flatMap(Set::stream).min(comparator_for T2);
return mapOfSet.entrySet().stream().filter(s->s.getValue().contains(minValue)).findFirst();
}
public static可选getMinimumKeyAndElement(地图)您的问题不清楚。请重新阅读并改进。
/**
* return minimum value of {getValue(elem)}_{elem is T2 values in all values of mapOfSet}
* and key of type T1 whose value (Set<T2) contains the minimum value
*/
public static<T1, T2> Map.Entry<T1, T2> getMinimumKeyAndElement(HashMap<T1, Set<T2>> mapOfSet){
???
}
public static<T1, T2> Optional<Map.Entry<T1, Set<T2>>> getMinimumKeyAndElement(Map<? extends T1,? extends Set<? extends T2>> mapOfSet){
T2 minValue = mapOfSet.values().stream().flatMap(Set::stream).min(comparator_for T2);
return mapOfSet.entrySet().stream().filter(s->s.getValue().contains(minValue)).findFirst();
}