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;
import java.util.Scanner;
class sg{
public int count;
public int shunxu;
public sg(int count)
{
this.count=count;
}
@Override
public String toString() {
return "sg [count=" + count + ", shunxu=" + shunxu + "]";
}
}
public class Test8 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
}
Map<Integer,sg> map=new HashMap<>();
int shunxu=1;
for(int i=0;i<n;i++)
{
if(!map.containsKey(a[i]))
{
sg temp=new sg(1);
temp.shunxu=shunxu;
map.put(a[i],temp);
shunxu++;
}
else
{
map.get(a[i]).count++;
}
}
List<Entry<Integer,sg>> list=new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer,sg>>(){
@Override
public int compare(Entry<Integer, sg> o1, Entry<Integer, sg> o2) {
if(o1.getValue().count>o2.getValue().count)
return -1;
else if(o1.getValue().count<o2.getValue().count)
return 1;
else
return o1.getValue().shunxu-o2.getValue().shunxu;
}
});
for(int i=0;i<list.size();i++)
{
Entry<Integer,sg> temp=list.get(i);
for(int j=0;j<temp.getValue().count;j++)
System.out.print(temp.getKey()+" ");
}
}
}
给定数组,将所有的数按照出现的次序由大到小输出,次数相同的,按照原数组的顺序输出
最新推荐文章于 2021-10-25 17:12:35 发布