隨機生成1-50內(nèi),100個數(shù)字 統(tǒng)計每個數(shù)字的次數(shù) ,并根據(jù)出現(xiàn)的次數(shù)排序
import java.util.*;
public class NumberTest {
public static void main(String[] args) {
//1-50內(nèi),100個數(shù)字 統(tǒng)計每個數(shù)字的次數(shù) ,并根據(jù)value排序
Random random=new Random();
//新建list集合,用來存放隨機生成的數(shù)字
List<Integer> num=new ArrayList<>();
//將隨機生成的數(shù)字放到list集合中
for (int i = 0; i < 100; i++) {
int rnum = random.nextInt(51);
num.add(rnum);
}
//打印list集合
System.out.println(num.toString());
//新建map集合,統(tǒng)計每個數(shù)字出現(xiàn)的次數(shù)
Map<Integer,Integer> map=new TreeMap<>();
//統(tǒng)計每個數(shù)組出現(xiàn)的次數(shù)
for (int i = 0; i < num.size(); i++) {
int n1 = num.get(i);
if (map.get(n1)==null){
map.put(n1,1);
}else {
int n = map.get(n1);
map.put(n1,n+1);
}
}
//遍歷map集合,打印每個數(shù)字出現(xiàn)的次數(shù)
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
Integer key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+"出現(xiàn)的次數(shù)是"+value);
}
//根據(jù)map集合中value的值對key進行排序
//這里將map..entrySet()轉(zhuǎn)為list
List<Map.Entry<Integer, Integer>> list=new ArrayList<>(map.entrySet());
//然后通過比較器來實現(xiàn)排序
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
//新建一個list集合,存放排序后的key
List<Integer> asc=new ArrayList<>();
//遍歷排序后的list對象,并提取出list集合中每一個map對象的key
for (Map.Entry<Integer, Integer> entry : list) {
asc.add(entry.getKey());
}
//打印排序后key
System.out.println(asc.toString());
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。