67,538
社区成员
发帖
与我相关
我的任务
分享
package com.haojia.sample;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
/**
* 对map的值排序
*
* @author July
*
*/
public class SortByMapsValues {
public static void sort(int[] data) {
// 用map记录次数
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < data.length; i++) {
if (map.get(data[i]) == null) {
map.put(data[i], 1);
} else {
map.put(data[i], map.get(data[i]) + 1);
}
}
System.out.println(map);
// 把map里的entry加到list里(为了用Collections.sort方法排序)
List<Entry<Integer, Integer>> list = new ArrayList<Entry<Integer, Integer>>();
for (Entry<Integer, Integer> entry : map.entrySet()) {
list.add(entry);
}
System.out.println(list);
// 对值排序
Collections.sort(list, new Comparator<Entry<Integer, Integer>>() {
@Override
public int compare(Entry<Integer, Integer> e1,
Entry<Integer, Integer> e2) {
return e1.getValue() < e2.getValue() ? 1 : e1.getValue() > e2
.getValue() ? -1 : (e1.getKey() < e2.getKey() ? -1 : e1
.getKey() > e2.getKey() ? 1 : 0);
}
});
System.out.println(list);
// 打印结果
for (Entry<Integer, Integer> entry : list) {
System.out.print(entry.getKey() + " ");
}
}
public static void main(String[] args) {
int[] i = { 1, 3, 1, 0, 5, 0, 1, 2, 2 };
sort(i);
}
}
package com.haojia.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class T {
public static void sort(int[] data) {
// 用map记录次数
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < data.length; i++) {
if (map.get(data[i]) == null) {
map.put(data[i], 1);
} else {
map.put(data[i], map.get(data[i]) + 1);
}
}
System.out.println(map);
// 把map里的entry加到list里(为了用Collections.sort方法排序)
List<Entry<Integer, Integer>> list = new ArrayList<Entry<Integer, Integer>>();
for (Entry<Integer, Integer> entry : map.entrySet()) {
list.add(entry);
}
System.out.println(list);
// 对值排序
Collections.sort(list, new Comparator<Entry<Integer, Integer>>() {
@Override
public int compare(Entry<Integer, Integer> e1,
Entry<Integer, Integer> e2) {
return e1.getValue() < e2.getValue() ? -1 : e1.getValue() > e2
.getValue() ? 1 : 0;
}
});
System.out.println(list);
// 打印结果
for (int i = list.size() - 1; i >= 0; i--) {
System.out.print(list.get(i).getKey() + " ");
}
}
public static void main(String[] args) {
int[] i = { 1, 3, 1, 0, 5, 0, 1, 2, 2 };
sort(i);
}
}