publicclassMain{ publicstaticvoidmain(String[] args){ List<Integer> list = List.of(12, 34, 56); Integer[] array = list.toArray(new Integer[list.size()]); for (Integer n : array) { System.out.println(n); } } }
练习题的解:
import java.util.*;
publicclassMain{ publicstaticvoidmain(String[] args){ // 构造从start到end的序列: finalint start = 10; finalint end = 20; List<Integer> list = new ArrayList<>(); for (int i = start; i <= end; i++) { list.add(i); } // 洗牌算法shuffle可以随机交换List中的元素位置: Collections.shuffle(list); // 随机删除List中的一个元素: int removed = list.remove((int) (Math.random() * list.size())); int found = findMissingNumber(start, end, list); System.out.println(list.toString()); System.out.println("missing number: " + found); System.out.println(removed == found ? "测试成功" : "测试失败"); }
staticintfindMissingNumber(int start, int end, List<Integer> list){ Integer[] array = list.toArray(new Integer[list.size()]); for (int i = 0; i < list.size() - 1; i++) { for (int j = 0; j < i; j++) { int temp; if (array[j] < array[j + 1]) { temp = array[j + 1]; array[j + 1] = array[j]; array[j] = temp; } } } for (int i = start; i <= end; i++) { if (i != array[i - start]) { return i; } } return0; } }
使用’contains’可以相当简洁:
staticintfindMissingNumber(int start, int end, List<Integer> list){ for (int i = start; i <= end; i++) { if (!list.contains(i)) { return i; } } return0; }