java 一个list中正负整数相同的抵消删除打印剩下的
时间: 2024-12-19 17:19:16 浏览: 15
在 Java 中,如果你想从一个 List 中删除并打印出正负整数对,使得它们相互抵消(即一个正数和一个负数相加等于零),可以按照以下步骤操作:
1. 首先,创建两个空列表,一个用于存储正整数 (`positiveNumbers`),另一个用于存储负整数 (`negativeNumbers`)。
2. 然后遍历输入的 List。对于每个元素,检查它是否是整数:
```java
for (Integer num : list) {
if (num != null && num instanceof Integer) {
int absNum = Math.abs(num); // 获取绝对值
if (absNum > 0) { // 如果是正数
positiveNumbers.add(absNum);
} else if (absNum == 0) { // 跳过零
continue;
} else { // 是负数
negativeNumbers.add(-absNum);
}
}
}
```
3. 接下来,遍历 `positiveNumbers` 和 `negativeNumbers`,依次找到匹配的数值,并打印它们,同时从相应的列表中删除已处理的项:
```java
while (!positiveNumbers.isEmpty() && !negativeNumbers.isEmpty()) {
int positive = positiveNumbers.remove(0);
int negative = negativeNumbers.remove(0);
System.out.println("正负相抵消:" + positive + " - " + negative);
}
```
4. 最后,如果还有剩余的正数未找到负数相抵消,将它们单独打印出来;同样,如果还有剩余的负数,也将它们打印。
```java
if (!positiveNumbers.isEmpty()) {
System.out.println("剩余的正数:");
for (int positive : positiveNumbers) {
System.out.println(positive);
}
}
if (!negativeNumbers.isEmpty()) {
System.out.println("剩余的负数:");
for (int negative : negativeNumbers) {
System.out.println(negative);
}
}
```
阅读全文