對隨機數去重並進行排序 java
阿新 • • 發佈:2018-12-10
對隨機數去重並進行排序
題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例裡可能會有多組資料,希望大家能正確處理)。
Input Param n 輸入隨機數的個數 inputArray n個隨機整陣列成的陣列
Return Value OutputArray 輸出處理後的隨機整數
注:測試用例保證輸入引數的正確性,答題者無需驗證。測試用例不止一組。
輸入描述: 輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數 輸出描述: 返回多行,處理後的結果 示例1 輸入 11 10 20 40 32 67 40 20 89 300 400 15
輸出 10 15 20 32 40 67 89 300 400
程式碼1:
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in );
int n = sc.nextInt();
if(n >= 1 && n <= 1000){
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < n; i++){
int a = sc.nextInt();
if(!list.contains(a)){
list.add(a);
}
}
Collections.sort(list);
for (int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}
}
程式碼2:推薦使用
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
TreeSet<Integer> set = new TreeSet<Integer>();
for(int i = 0; i < n; i++){
int a = sc.nextInt();
set.add(a);
}
for(Integer it: set){
System.out.println(it);
}
}
}
}
推薦原因:
先看一個簡單的例子,TreeSet集合,存入整數,進行排序
import java.util.TreeSet;
public class Main3 {
public static void main(String[] args){
TreeSet<Integer> ts = new TreeSet<>();
ts.add(6789);
ts.add(123);
ts.add(12323);
ts.add(123);
ts.add(-1234);
for (Integer i: ts) {
System.out.print(i+" ");
}
}
}