java代码开发一个功能:两个list,值相同则相加,不同则保留
时间: 2023-03-21 17:01:58 浏览: 100
java8实现list集合中按照某一个值相加求和,平均值等操作代码
以下是一个 Java 代码示例,实现了两个 list 的值相加的功能:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ListAddition {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
List<Integer> result = addLists(list1, list2);
System.out.println(result);
}
public static List<Integer> addLists(List<Integer> list1, List<Integer> list2) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> result = new ArrayList<>();
for (int i : list1) {
map.put(i, map.getOrDefault(i, 0) + 1);
}
for (int i : list2) {
if (map.containsKey(i)) {
result.add(i * (map.get(i) + 1));
map.remove(i);
} else {
result.add(i);
}
}
for (int i : map.keySet()) {
result.add(i * map.get(i));
}
return result;
}
}
```
在这个示例中,我们首先创建了两个 list,分别是 `list1` 和 `list2`,它们包含了一些整数。
然后,我们定义了一个名为 `addLists` 的方法,它接受两个 list 作为参数,并返回一个 list,其中包含了这两个 list 中的元素相加的结果。
在 `addLists` 方法中,我们使用了一个 HashMap 来存储 `list1` 中的元素及其出现次数。然后,我们遍历 `list2` 中的元素,如果该元素也在 `list1` 中出现过,则将它们的值相加,否则将其保留。最后,我们遍历 `map` 中剩余的元素,将它们的值乘上出现次数后加入结果 list 中。
在示例中,我们将 `list1` 和 `list2` 传递给 `addLists` 方法,并打印了返回的结果。输出结果为 `[2, 4, 6, 4]`,这个结果中包含了两个 list 中的元素相加的结果。
阅读全文