透過Treeset解決隨機數排序問題

Jessi_c發表於2024-03-13

題目連結:https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0?tpId=37&tqId=21226&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

描述
明明生成了N個1到500之間的隨機整數。請你刪去其中重複的數字,即相同的數字只保留一個,把其餘相同的數去掉,然後再把這些數從小到大排序,按照排好的順序輸出。

輸入描述:
第一行先輸入隨機整數的個數N,接下來的 N 行每行輸入一個整數,代表明明生成的隨機數。

輸出描述:
輸出多行,表示輸入資料處理後的結果。

Java程式碼實現:

import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        TreeSet set = new TreeSet<>();
        int num = scanner.nextInt(); //要輸入的資料個數

        //輸入資料並儲存到set中
        for (int i = 0; i < num; i++){
            set.add(scanner.nextInt());
        }

        //迭代器遍歷
        Iterator iterator = set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        scanner.close();
    }
}

透過這道題學習Treeset的簡單知識:
【有序、唯一、基於紅黑樹實現】

向Treeset中新增元素:
TreeSet set = new TreeSet<>(); set.add("新增的元素");

從Treeset中刪除元素:
set.remove("刪除的元素");

判斷TreeSet中是否存在指定元素:
boolean isExist = set.contains("Java");

獲取TreeSet中第一個元素:
String first = set.first();

獲取TreeSet中最後一個元素:
String last = set.last();

可以使用迭代器遍歷Treeset中的元素,程式碼如下:

Iterator iterator = set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

相關文章