Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于参数';s值 private List批处理(List\u POIs) { 列表_POIs_batched=new ArrayList(); 对于(PoI poi1:_PoI) { 对于(PoI poi2:_PoI) { 如果(poi1.getId()==poi2.getId()) { PoI newPoI=新PoI(poi1.getId(),poi1.getServiceTime()+poi2.getServiceTime()); _批量添加的POI_(新POI); } } } 分批返回; }_Java_List_Arraylist_Batch Processing - Fatal编程技术网

Java 基于参数';s值 private List批处理(List\u POIs) { 列表_POIs_batched=new ArrayList(); 对于(PoI poi1:_PoI) { 对于(PoI poi2:_PoI) { 如果(poi1.getId()==poi2.getId()) { PoI newPoI=新PoI(poi1.getId(),poi1.getServiceTime()+poi2.getServiceTime()); _批量添加的POI_(新POI); } } } 分批返回; }

Java 基于参数';s值 private List批处理(List\u POIs) { 列表_POIs_batched=new ArrayList(); 对于(PoI poi1:_PoI) { 对于(PoI poi2:_PoI) { 如果(poi1.getId()==poi2.getId()) { PoI newPoI=新PoI(poi1.getId(),poi1.getServiceTime()+poi2.getServiceTime()); _批量添加的POI_(新POI); } } } 分批返回; },java,list,arraylist,batch-processing,Java,List,Arraylist,Batch Processing,我需要找到并批处理具有相同getId()值的元素。上面给出的代码的问题是我正在搜索成对的元素。但是,可能有两个以上的元素具有相同的getId()值。 如何解决这个问题?使用映射(我假设id是int-或Integer-键入的;无论如何,如果它是整数,请使用.equals()而不是=) 您可以保留共享相同id的PoIs列表。然后,您可以轻松地计算它们的服务时间 编辑(代码段): Map poisPerId=new HashMap(); 对于(PoI PoI:_PoI){ 整数id=poi.getId

我需要找到并批处理具有相同getId()值的元素。上面给出的代码的问题是我正在搜索成对的元素。但是,可能有两个以上的元素具有相同的getId()值。 如何解决这个问题?

使用
映射(我假设id是
int
-或
Integer
-键入的;无论如何,如果它是
整数
,请使用
.equals()
而不是
=

您可以保留共享相同id的
PoI
s列表。然后,您可以轻松地计算它们的服务时间

编辑(代码段):

Map poisPerId=new HashMap();
对于(PoI PoI:_PoI){
整数id=poi.getId();
List pois=poiperid.get(id);
if(pois==null){
pois=新的ArrayList();
poiperid.put(id,pois);
}
poi.add(poi);
}
private List<PoI> batch(List<PoI> _POIs)
{
    List<PoI> _POIs_batched = new ArrayList<PoI>();
    for (PoI poi1 : _POIs) 
    {
        for (PoI poi2 : _POIs) 
        {
            if (poi1.getId() == poi2.getId())
            {
                PoI newPoI = new PoI(poi1.getId(),poi1.getServiceTime()+poi2.getServiceTime());
                _POIs_batched.add(newPoI);
            }
        }
    }

    return _POIs_batched;
}
Map<Integer, List<PoI>> poisPerId = new HashMap<>();
for (PoI poi : _POIs){
    Integer id = poi.getId();
    List<PoI> pois = poisPerId.get(id);
    if(pois == null){
        pois = new ArrayList<PoI>();
        poisPerId.put(id, pois);
    }
    pois.add(poi);
}