思路:
法1:使用哈希表,可以保证无重复值。然后取出所有value放入数组。
接着数组排序。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Main {
    public static void main(String[] args) throws IOException {
        int len = 0;//输入的个数N
        int element = 0;
        Object[] number = {0};//无重复元素的数组
        
        
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        Map<Integer,Integer> ages = new HashMap<Integer,Integer>();
       
        //System.out.println(br.readLine());
        //System.out.println(br.readLine());
        len = Integer.parseInt(br.readLine());//首行为元素个数
        //System.out.println(len);
        for(int num=0;num<len;num++){//将数值放入哈希表。确保元素不重复
            element = Integer.parseInt(br.readLine());
            //System.out.println(element);
            if(ages.containsKey(element)){//若哈希表中有重复元素
                continue;
            }else{//若不重复则放入哈希表
                ages.put(element,num);
                //System.out.println(num+","+element);
            }
        }
        //哈希表排序
        number = ages.keySet().toArray();//将KeySet返回的key值集合转为数组
        Arrays.sort(number);//排序
        for(Object key : number){//打印数组元素
            System.out.println(key);
        }
    }
}

 

法2:还是暴力拆解呗,万能暴力。
每拿一个数,都循环看看有没有重复,没有重复就放入。
最后数组排序
 
 
 
谷歌:
1.String和int互转
String转int:
 
int i = Integer.parseInt([String]);//i = Integer.parseInt([String],[int radix]);
int i = Integer.valueOf(my_str).intValue();

int转String:

String s = String.valueOf(i);
String s = Integer.toString(i);
String s = ""+i;;

 

2.java集合转数组
 
Object[] toArray();

 

 
3.哈希表排序
按Key值:
KeySet()方法将哈希表中所有key值放入集合
Set.toArray(arr)方法将集合转为数组
Arrays.sort(arr)数组排序
 
Set set = ages.KeySet();//拿到Key集合
Object[] arr = set.toArray();//集合转数组
Arays.sort(arr);//数组排序
for(Object key:arr){//打印出排序好的数组
    System.out.println(key);
}

 

按Value值:
先得到entrySet。然后将Set转成List。再重写list的比较器得到结果。
 
//拿到entrySet并转list
List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(ages.entrySet());

//list排序
//法1 重写Comparator比较器
list.sort(new Comparator<Map.Entry<String,Integer>>(){
    @Override
    public int compare(Map.Entry<String,Integer> o1,Map.Entry<String,Integer> o2){
        return o2.getValue().compareTo(o1.getValue());
    }
});
//法2 重写Collection.sort()排序
Collection.sort(list,new Comparator<Map.Entry<String,Integer>>(){
    @Override
    public int compare(Map.Entry<String,Integer>o1, Map.Entry<String,Integer> o2){
        return o2.getValue().compareTo(o1.getValue());
    }
})

 

 
posted on 2022-07-31 18:20  Jolyne123  阅读(329)  评论(0编辑  收藏  举报