class MyObject
String name;
int counter;
MyObject(String name) {
this.name = name;
this.counter = 1;
}
// getters and setters...
class Main
HashMap<String, MyObject> map1 = new HashMap<>();
HashMap<String, MyObject> map2 = new HashMap<>();
//some code that will put some instances of MyObject into map1 and map2
// assume that least three instances have the same keys
HashMap<String, MyObject> map3 = new HashMap<>(map1);
map2.forEach((key, value) -> map3.merge(key, value, (v1, v2) -> new MyObject(v1.getName())));
假设这两个对象有相同的键;
MyObject.getCounter() = 3 in map1
MyObject.getCounter() = 5 in map2
The new MyObject.getCounter() should be 8.
您可以按以下方式进行:
创建一些数据
HashMap<String, MyObject> map1 = new HashMap<>();
HashMap<String, MyObject> map2 = new HashMap<>();
map1.put("A", new MyObject(2));
map1.put("B", new MyObject(4));
map1.put("C", new MyObject(10));
map2.put("C", new MyObject(10));
map2.put("B", new MyObject(8));
Map<String, MyObject> result = Stream
.concat(map1.entrySet().stream(),
map2.entrySet().stream())
.collect(Collectors.toMap(Entry::getKey,
Entry::getValue, (a, b) -> {
a.setCounter(a.getCounter() + b.getCounter());
return a;
}, HashMap::new));
result.entrySet().forEach(System.out::println);
A=2
B=12
C=20
Map<String, MyObject> result = Stream.of(map1,map2)
.flatMap(map->map.entrySet().stream())
.collect(...);
class MyObject {
int value;
public MyObject(int v) {
this.value = v;
}
public int getCounter() {
return value;
}
public void setCounter(int a) {
value = a;
}
public String toString() {
return value + "";
}
}
我有两张阵列图。 有没有办法用流来完成这个任务? 或者我必须通过映射迭代?
问题内容: 我正在尝试更新具有两个主键的Model。 模型 移民 这是应该更新库存模型的代码,但不是。 我收到此错误: 我也尝试使用updateOrCreate()方法。它不起作用(我得到同样的错误)。 谁能告诉我们应该如何更新带有两个主键的Model? 问题答案: 我已经遇到过几次这个问题。您需要覆盖一些属性: 和方法(功劳): 请记住,此代码需要引用Eloquent Builder类, 我建议
我有两个哈希要合并。它们看起来像这样: 第二个散列看起来像: 我想合并这两个散列数组,结果如下所示: 有没有一种简单的方法来合并这两个哈希,或者我必须逐个遍历哈希并在另一个哈希中找到该键?
问题内容: 这个问题已经在这里有了答案 : 在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序 (14个答案) 7年前关闭。 我有两个arrayLists 我想要我的最终ArrayList,其中将包含一个元素的 所有 元素以及仅包含两个元素而不包含一个元素的元素。 因此ArrayList final = {A,B,C,D,E,F,G}。 我怎样才能做到这一点
我严重卡在一张有复合钥匙的桌子上。我试图用雄辩的口才通过两个主键过滤记录。但是我开始知道雄辩不支持复合键。我经历了许多解决方案,但没有一个解决方案足够清晰,让初学者理解。 解决方案代码表示使用以下代码编辑模型类: 我想使用laravel提供的资源控制器执行更新功能:我的代码如下所示: 另外,请指导我如何使用带有主键的资源控制器,因为它会为一些参数抛出错误?请帮帮我。我读了很多在线文章,真的很累,但
我想同时执行两个流,并生成作为前两个流的组合的第三个流 我想从这两个中生成一个新的,它将与这一个等价 我目前找到的是或