/** * 编写单元测试 * 测试查找丢失数据 */@Testpublic void testFindNum() { // 构造从start到end的序列: int start = 10; int end = 20; List<Integer> listData =new ArrayList<>(); for (int i = start; i <= end; i++) { listData.add(i); } //通过随机索引删除listData中的值,并返回被删除的元素值 int randomIdx = (int) (Math.random() * listData.size()); Integer removed = listData.remove(randomIdx); System.out.println("删除后的元素 = " + removed); //查找一个丢失的数据 int missingNumber = findMissingNumber(start, end, listData); System.out.println("丢失的数据 = " + missingNumber); System.out.println((removed == missingNumber) ? "找到了": "没找到");}/** * 查找丢失的值 * * @param start int * @param end int * @param movedList List<Integer> * @return int */private int findMissingNumber(int start, int end, List<Integer> movedList) { List<Integer> tmpList = new ArrayList<>(); for (int i = start; i <= end; i++) { tmpList.add(i); //自动装箱 } //求差集 tmpList.removeAll(movedList); return tmpList.getFirst(); //自动拆箱}
Sign in to make a reply
杜甫