题目:
生成10个[1,100]的随机整数(用集合存储),删除最大的三个数字。如果最大的数字有多个 必须要全部删除
举例:
原集合:[1, 2, 2, 3, 4, 5, 6, 79, 88, 88, 88, 99, 99, 100]
删除后的集合:[1, 2, 2, 3, 4, 5, 6, 79]
最大的三个数是:[100, 99, 88]
public static void main(String[] args) {
Random rand = new Random();
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add(rand.nextInt(100) + 1);//[1,101)
}
//测试用代码 如果你想快速验证是否正确运行
/*List<Integer> test = Arrays.asList(1, 2, 2, 3, 4, 5, 6, 79, 88, 88, 88, 99, 99, 100);
list.addAll(test);*/
System.out.println("原集合为:" + list);
int[] maxNum = new int[3];
for (int i = 0; i < 3; i++) {
int tempMax = list.get(0);
for (int j = 0; j < list.size(); j++) {
if (list.get(j) > tempMax) tempMax = list.get(j);
}
maxNum[i] = tempMax;
while (list.contains(tempMax)) {
list.remove(Integer.valueOf(tempMax));
}
}
System.out.println("现集合为:" + list);
System.out.println("最大的三个数是:" + Arrays.toString(maxNum));
}
概览:
- 创建一个ArrayList对象list,并用random方法添加一些整数元素。
- 创建一个长度为3的整型数组maxNum,用于存储list中的最大的三个数。
- 通过遍历list,找出其中的最大值,并将其存储到maxNum数组中。
- 在找到最大值后,使用while循环 将其从list中移除。
- 重复上述步骤,直到找到三个最大值并将其存储到maxNum数组中。
- 输出最终的list和maxNum数组。