1. 程式人生 > >對隨機數去重並進行排序 java

對隨機數去重並進行排序 java

對隨機數去重並進行排序

題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了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+" ");
        }
    }
}