怎么将泛型列表中某一列的值放到另一个列表对应列的里面

如何将泛型列表中某一列的值放到另一个列表对应列的里面?
例如List<order> or = comDao.getList(a) 和 List<order> ord = comDao.getList(b);
     or里面有{ {城市=“北京”,订单量=‘23’,服务量=''  },{城市=“上海”,订单量=‘23’,服务量=''  } }
     ord里面有{ {城市=“北京”,订单量=‘’,服务量='20'  },{城市=“上海”,订单量=‘’,服务量='30'  } }
怎么样将ord中的服务量的值分别赋值给or里面的服务量中
        
------解决思路----------------------
如果order中有某个属性是唯一的,可以用它作为hashCode,把or装进一个HashMap中,这样就能很快找到相同的order
如果没有,就只能两层循环遍历了
------解决思路----------------------
package com.test.other;

import java.util.ArrayList;
import java.util.List;
import com.entity.Order;

public class Test {

public static void main(String[] args) {

Order or1 = new Order("北京", "23", "");
Order or2 = new Order("上海", "23", "");
Order or3 = new Order("广州", "23", "");
Order ord1 = new Order("北京", "", "20");
Order ord2 = new Order("上海", "", "30");
Order ord3 = new Order("广州", "", "40");

List<Order> or = new ArrayList<Order>();
List<Order> ord = new ArrayList<Order>();
or.add(or1);
or.add(or2);
or.add(or3);
ord.add(ord1);
ord.add(ord2);
ord.add(ord3);

for (int i = 0; i < ord.size(); i++) {
or.get(i).setServiceCount(ord.get(i).getServiceCount());
}

for (Order order : or) {
System.out.println(order);
}
}
}

运行结果:
怎么将泛型列表中某一列的值放到另一个列表对应列的里面
------解决思路----------------------
循环遍历时,对象元素o不会被改变,遍历不改变原值,直接用  for 循环就可以了。。



for (int i = 0; i < ord.size(); i++) {
    if(ord.get(i).getCity().equals(or.get(i).getCity())){
        or.get(i).setServiceCount(ord.get(i).getServiceCount());
            
        }



希望对你有用。
------解决思路----------------------
引用:
如果楼主用的是java8的话,那么这个问题实现起来不仅简单而且效率高
将ord中的服务量赋值到or中对应city的服务量上,可以把ord根据city属性分组java8 stream api实现非常简单而且高效
Map<String,List<Order>> map=ord.stream().collect(Collectors.groupingBy(Order::getCity));这里就把ord里面所有的元素按照属性city的值分组了
or就可以做遍历操作了,用java8的并行stream多核cpu同时工作
or.parallelStream().forEach(order->order.setServiceCount(map.get(order.getCity()).get(0)));

map.get(order.getCity()).get(0)这里修正下map.get(order.getCity()).get(0).getServiceCount()