java - 为什么设置有时打印排序值,有时不打印?
问题描述
我有一个简单的程序,可以打印特定范围内的唯一值。
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]。为什么它在第一个示例中排序而不是在第二个示例中?
解决方案
一个 Set 不是有序的。所以有时可能是,有时可能不是。
如果你想订购,你必须使用一些 List<> 或 Treemap<> 的东西。
推荐阅读
- html - 内联 3 个元素
- vue.js - VueJS布局中的组件不更新
- javascript - 未调用按钮单击事件回调 - jest/enzyme
- python - 允许许多字符的 argparse 选项的简短形式
- spring-mvc - 使用 Spring RestTemplate,出现错误时如何记录响应?
- c - 从文件中读取数据的输入整数的排列生成所有可能的二叉树
- reactjs - 从对象数组生成表
- datagrid - UWP Community Toolkit DataGrid 控件:如何将单元格内容右对齐
- javascript - 减少函数给出“未捕获的类型错误:无法设置未定义的属性‘标题’”
- linux - 如何在 GCE 上的 CentOS 中调整 xfs 的大小?