输入:
1001
1003
1004
1005
输出
1001
1002
1003
1004
1005
是否有使用 JAVA 以升序形式自动生成数字的示例?假设,如果系统检查数字1001到1005并且缺少1002,则系统将自动生成1002。
答案 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
}