

思路:
法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互转
JAVA 中 string 和 int 互相转化 | 菜鸟教程 (runoob.com)
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集合转数组
(14条消息) java集合转数组(Collection转array)_皮皮go的博客-CSDN博客_java 集合转数组
Object[] toArray();
3.哈希表排序
(14条消息) Java HashMap按key排序和按value排序的两种简便方法_xHibiki的博客-CSDN博客_java哈希表排序
按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());
}
})
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/tech/java/278070.html