如何以升序形式自动生成数字



输入 :

1001
1003
1004
1005

输出

1001
1002
1003
1004
1005

是否有任何使用 JAVA 以升序形式自动生成数字的示例?假设,如果系统检查数字 1001 到 1005 并且缺少 1002,系统将自动生成 1002。

您可以找到最小的值,然后找到最大的值,并在它们之间生成数字。

例如

List<Integer> list = Arrays.asList(1001,1003,1004,1005);
int min = Collections.min(list);
int max = Collections.max(list);
IntStream.range(min, max+1).forEach(System.out::println);

您可以使用带有某些条件的循环,例如:

List<Integer> list = new ArrayList<>();
list.addAll(Arrays.asList(1001, 1003, 1004, 1005));
for (int i = 1001; i < 1005; i++) {
    if (!list.contains(i)) {//if the list not contain this element
        list.add(i);//add this element to the list
    }
}
Collections.sort(list);//sort your list
System.out.println(list);//print your list

输出

[1001, 1002, 1003, 1004, 1005]

解决方案 2

您还可以使用 Set 例如:

Set<Integer> set = new HashSet<>(Arrays.asList(1001, 1003, 1004, 1005));
for (int i = 1001; i < 1005; i++) {
    set.add(i);//add element the set
}

最新更新