使用场景,有两个List>集合,第一个集合的所有元素都是需要保留的。
第一个集合的值为:
{name=张三丰1, id=1}
{name=张三丰2, id=2}
{name=张三丰3, id=3}
{name=张三丰4, id=4}
{name=张三丰5, id=5}
{name=张三丰6, id=6}
{name=张三丰7, id=7}
{name=张三丰8, id=8}
第二个集合的值为:
{grade=61, id=1}
{grade=62, id=2}
{grade=63, id=3}
{grade=64, id=4}
需要根据两个集合中id值相同,就把第二个集合中的grade值赋给第一个集合,如果不匹配,默认grade值为0
结果是这样:
{grade=61, name=张三丰1, id=1}
{grade=62, name=张三丰2, id=2}
{grade=63, name=张三丰3, id=3}
{grade=64, name=张三丰4, id=4}
{grade=0, name=张三丰5, id=5}
{grade=0, name=张三丰6, id=6}
{grade=0, name=张三丰7, id=7}
{grade=0, name=张三丰8, id=8}
具体实现代码:
@Test
public void demo01(){
List> list = new ArrayList>();
for (int i=1;i<9;i++){
Map map = new HashMap<>();
map.put("id",i);
map.put("name","张三丰"+i);
list.add(map);
}
Stream> s1 = list.stream();
list.stream().forEach(map-> System.out.println(map));
List> list2 = new ArrayList>();
for (int i=1;i<5;i++