java - 从 ArrayList 中删除多个数字
问题描述
我有这个练习“编写一个程序,构造一个包含数字 1 到 100 的 ArrayList 并将它们打印出来。然后向用户询问一个数字,并从列表中删除该数字的所有倍数(数字本身除外) ,然后再次打印列表。例如,如果用户选择 5,它将从列表中删除 10、15、20、25、30 等。
而且我似乎无法完成第二部分(删除所有倍数)
到目前为止,这就是我所拥有的:
package ArrayList1To100;
import java.util.ArrayList;
import java.util.Scanner;
public class OneToHundreed {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= 100; i++) {
list.add(i);
}
System.out.println(list);
System.out.println("Next part of the exercise\n_________________________");
System.out.println("Please enter a number");
final int input = sc.nextInt();
int i = 2;
int x = i * input;
while (list.contains(x)) {
list.remove(x - 1);
}
System.out.println(list);
}
}
我知道我的删除部分有缺陷,因为它只删除了一个数字。我已经尝试过使用 if 语句和一段时间。但我似乎无法找到联系。
解决方案
这不是整个程序,但足以给你一个想法。它使用removeIf
和条件是该数字可以被输入整除但不等于输入本身。
int input = 2;
List<Integer> list = new ArrayList<>(List.of(1,2,3,4,5,6,7,8,9,10));
System.out.println(list);
list.removeIf(a->a != input && a % input == 0);
System.out.println(list);
印刷
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 5, 7, 9]
推荐阅读
- javascript - 提示功能不接受仅包含数字的输入
- blackberry - 在 IOS 14 设备中单击输入类型日期时,Blackberry Access App 崩溃
- angular - 在 Angular 应用程序中使用地理编码 API 时出现 COORS 错误
- sql - SQL INSERT from 1 table to another , WHERE 两个表中的现有列共享相同的内容
- javascript - 是否可以从 Angular 10 的主 JS 包中删除组件样式?
- python - 从字典中定义/初始化函数中的局部变量
- python - 在 Windows 上制作闪烁的 Py-Console
- html - 我的 css 和 html 文件有一些问题
- python-3.x - 如何扩展不同的字母数字范围,如输入(例如:AB10-AB12,10AC-10AE,10A-1-10A-3)等..?
- audio - 如何将仅包含音频文件的文件夹拆分为 train 和 test 文件夹