思路:
法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/278070.html