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

时间:2017-05-14 07:51:02

标签: java

输入:

1001
1003
1004
1005

输出

1001
1002
1003
1004
1005

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

2 个答案:

答案 0 :(得分:3)

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

例如,

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);

答案 1 :(得分:2)

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

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
}