(“Samsung”,(“Galaxy”,20))
(“苹果”,(“iPhone”,40))
我需要按照内部键的字母顺序对映射进行降序排序(在这个例子中是模型名)
我到目前为止的排序是这样的:
Map.EntrySet().Stream.Foreach(entry->entry.GetValue().EntrySet().Stream().Sorted(Comparator.Comparative(Map.entry::GetKey,Comparator.ReverseOrder()))
而且我知道我必须添加.thencomparate()
,但我不知道下一步如何进行。
您可以编写一个CustomComparator,如下所示:
import java.util.*;
public int compare(Object obj1 , Object obj2){
Map<String, Map<String, Integer> > map1 = (Map<String, Map<String, Integer>) obj1;
Map<String, Map<String, Integer> > map2 = (Map<String, Map<String, Integer>) obj2;
Map.Entry e1 = (Map.Entry)map1.entrySet();
Map.Entry e2 = (Map.Entry)map2.entrySet();
String brand1 = (String)e1.getKey();
String brand2 = (String)e2.getKey();
Map.Entry e3 = (Map.Entry)e1.getValue();
Map.Entry e4 = (Map.Entry)e3.getValue();
Integer price1 =(Integer) e3.getValue();
Integer price2 =(Integer) e4.getValue();
if(brand2.compareTo(brand1) != 0){
return brand2.compareTo(brand1);
}else{
price1.compareTo(price2);
}
}
}
这个压缩器将首先按照品牌名称的降序对数据进行排序,如果两个品牌具有相同的名称,那么它将按照价格的升序进行排序。
您必须在树状图中添加数据,如下所示
我们必须按降序对数组进行部分排序。 我知道d::partial_sort但它是按升序排列的。 http://en.cppreference.com/w/cpp/algorithm/partial_sort. 是他们的任何其他这样的功能,可以这样做,或任何快速算法这样做。
考虑下面的哈希图: 具有诸如 我需要按值对hashmap进行降序排序,但如果值相等,则按键进行升序排序: 到目前为止,我试着分别按键排序,然后按值排序,但我不相信这种方法。除了创建更多的hashmaps之外,还有什么好方法呢?
我有一个HashMap与作为关键和一个值作为价值。 我的目标是通过降序值对Hashmap进行排序。应在
我有一个类似于以下内容的HashMap: 有什么建议吗? 我首先比较值,只有在值重复的情况下才比较键。所以我同时使用键和值,而不仅仅是值。
我有一个通用的链表,目前由int组成,我想在默认情况下按升序排序,然后切换一个布尔值,按降序排序。我该怎么做?
问题内容: 在发现了惊人的发现之后,我再次陷入了困境。 问题是我有一个形式的字典,我需要按其整数值的降序对其进行排序, 但是 如果两个元素的值相同,则按键的升序排列。 一个使它更清楚的例子: 经过研究后,我得出以下结论: 这是因为它对值和键都进行了反向排序。我需要不撤消的钥匙。 问题答案: 就像是