map排序,根据key给map排序,根据value给map排序
2017-08-22 23:40
423 查看
1.根据key键给map排序
public static void main(String[] args) {
Map<Integer,String> map = new TreeMap<>(new Comparator<Integer>(){
@Override
public int compare(Integero1, Integer o2) {
return o1-o2;//按照key顺序排列,o2-o1是逆序
}
});
map.put(3, "China");
map.put(8, "America");
map.put(2, "Canada");
map.put(1, "Franch");
map.put(5, "Banana");
//map遍历
Set<Integer> set = map.keySet();
Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){
Integer key2 = iterator.next();
System.out.println(key2+"-------"+map.get(key2));
}
}
排序结果:
1-------Franch
2-------Canada
3-------China
5-------Banana
8-------America
注意:标红部分的对应关系,因为key是Integer,所以,比较器的泛型和参数 都是Integer.
2.根据value给map排序
public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<>();
map.put(3, "China");
map.put(8, "America");
map.put(2, "Canada");
map.put(1, "Franch");
map.put(5, "Banana");
ArrayList<Entry<Integer, String>> list =
new ArrayList<Map.Entry<Integer, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
@Override
public int compare(Entry<Integer, String> o1,
Entry<Integer, String> o2) {
return o1.getValue().compareTo(o2.getValue());//顺序
}
});
for (Entry<Integer, String> entry : list) {
System.out.println(entry.getKey()+"------"+entry.getValue());
}
}
排序结果:
8------America
5------Banana
2------Canada
3------China
1------Franch
如果想要逆序,改变o1和o2的顺序即可,蓝色部分改为:
o2.getValue().compareTo(o1.getValue())
public static void main(String[] args) {
Map<Integer,String> map = new TreeMap<>(new Comparator<Integer>(){
@Override
public int compare(Integero1, Integer o2) {
return o1-o2;//按照key顺序排列,o2-o1是逆序
}
});
map.put(3, "China");
map.put(8, "America");
map.put(2, "Canada");
map.put(1, "Franch");
map.put(5, "Banana");
//map遍历
Set<Integer> set = map.keySet();
Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){
Integer key2 = iterator.next();
System.out.println(key2+"-------"+map.get(key2));
}
}
排序结果:
1-------Franch
2-------Canada
3-------China
5-------Banana
8-------America
注意:标红部分的对应关系,因为key是Integer,所以,比较器的泛型和参数 都是Integer.
2.根据value给map排序
public static void main(String[] args) {
TreeMap<Integer, String> map = new TreeMap<>();
map.put(3, "China");
map.put(8, "America");
map.put(2, "Canada");
map.put(1, "Franch");
map.put(5, "Banana");
ArrayList<Entry<Integer, String>> list =
new ArrayList<Map.Entry<Integer, String>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
@Override
public int compare(Entry<Integer, String> o1,
Entry<Integer, String> o2) {
return o1.getValue().compareTo(o2.getValue());//顺序
}
});
for (Entry<Integer, String> entry : list) {
System.out.println(entry.getKey()+"------"+entry.getValue());
}
}
排序结果:
8------America
5------Banana
2------Canada
3------China
1------Franch
如果想要逆序,改变o1和o2的顺序即可,蓝色部分改为:
o2.getValue().compareTo(o1.getValue())
相关文章推荐
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java中Map根据键值(key)或者值(value)进行排序实现
- 算法实战:根据Key或Value对Map进行排序及其应用
- Map中根据value排序---输出value最大时所对应的Key
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java中Map根据键值(key)或者值(value)进行排序实现
- 获取map中根据key进行排序的value数据
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java基础 —— 根据 Key 或是 Value 对 Map 进行排序
- Map排序,获取map的第一值,根据value取key等操作(数据预处理)
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java 中 Map 根据键值 (key) 或者值 (value) 进行排序实现
- 算法实战:根据Key或Value对Map进行排序及其应用
- Java中Map根据键(Key)或者值(Value)进行排序
- java map遍历、排序,根据value获取key
- 对Map按key和value分别排序
- 对Map里面的key和value按字母排序
- 对Map按key和value分别排序
- Android 对Map按key和value分别排序的实例
- 对Map按key和value分别排序