这是我拥有的代码:
from wand.image import Image
with Image(blob=img, format='GIF') as picture:
picture.depth = 8
print picture[1, 1].string
#=> srgb(274,274,274)
但是我无法对数据进行排序,我需要按值(名称)对哈希表进行排序。
输入:Map<Integer,String> map = new HashMap<>();
map.put(23,"Nitin");
map.put(45,"Kapil");
map.put(20, "Sam");
map.put(18,"Adam");
for(Map.Entry m:map.entrySet()){
System.out.println(m.getValue()+":"+m.getValue());
}
Map<Age,Name>
输出:
23, Nitin
45, Kapil
20, Sam
18, Adam
答案 0 :(得分:0)
您可以只使用Java Streams来执行此操作,并按照我的值对地图进行排序:
Map<Integer, String> sorted = map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (s1, s2) -> s1, LinkedHashMap::new));
sorted.forEach((i, s) -> System.out.println(i + ": " + s));
LinkedHashMap
将保留将键添加到地图中的顺序。
结果将是这样:
18: Adam
45: Kapil
23: Nitin
20: Sam
如果要反转值的顺序,可以使用Comparator.reversed()
:
Map<Integer, String> sorted = map.entrySet().stream()
.sorted(Map.Entry.<Integer, String>comparingByValue().reversed())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (s1, s2) -> s1, LinkedHashMap::new));