首页 > 解决方案 > 为什么设置有时打印排序值,有时不打印?

问题描述

我有一个简单的程序,可以打印特定范围内的唯一值。

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class Zad3 {
    public static void main(String[] args) {
        System.out.println(numbers(5));
    }

    private static Set<Integer> numbers(int howMany) {
        Random rand = new Random();
        Set<Integer> numb = new HashSet<>();
        while (numb.size() < howMany) {
            numb.add(rand.nextInt(5) + 1);
        }
        return numb;
    }
}

当我将 rand 设置为 1-5 时,它会打印 [1, 2, 3, 4, 5] 但是当我将 rand 设置为 1-100 时,结果不会排序 - 即。[53、86、39、91、60]。为什么它在第一个示例中排序而不是在第二个示例中?

标签: javasortingset

解决方案


一个 Set 不是有序的。所以有时可能是,有时可能不是。

如果你想订购,你必须使用一些 List<> 或 Treemap<> 的东西。


推荐阅读