Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 在大型XML文档的一次迭代中生成两个列表_Java_Xml_List_Loops_Return - Fatal编程技术网

Java 在大型XML文档的一次迭代中生成两个列表

Java 在大型XML文档的一次迭代中生成两个列表,java,xml,list,loops,return,Java,Xml,List,Loops,Return,给定一个IDs列表,我需要迭代一个大型OSM(开放式街道地图)文件(),并为相应的节点收集两种不同类型的信息:坐标和用户名(一旦提取出来,它们之间的关联并不重要,也就是说,我不需要知道哪个用户对应于哪个坐标) 也就是说,我需要检查文件中的每个节点,看看它们是否与给定列表中的一个ID匹配,如果匹配,我希望保留坐标(纬度和经度)和用户信息(贡献节点的人)并返回数据 在Java中,我不能在一个方法中返回两个单独的列表。在一个没有约束的世界中,我会对文档进行两次迭代——第一次是获取坐标数据,第二次是获取

给定一个
ID
s列表,我需要迭代一个大型OSM(开放式街道地图)文件(),并为相应的节点收集两种不同类型的信息:坐标和用户名(一旦提取出来,它们之间的关联并不重要,也就是说,我不需要知道哪个用户对应于哪个坐标)

也就是说,我需要检查文件中的每个节点,看看它们是否与给定列表中的一个ID匹配,如果匹配,我希望保留坐标(纬度和经度)和用户信息(贡献节点的人)并返回数据

在Java中,我不能在一个方法中返回两个单独的列表。在一个没有约束的世界中,我会对文档进行两次迭代——第一次是获取坐标数据,第二次是获取用户数据。 然而,在这种情况下,这是不实际的,因为我正在处理的OSM文件可能是巨大的——通常是千兆字节


所以我的问题是,迭代一次但生成多个要提取的数据列表的最佳方法是什么?

返回一个对象列表,其中每个对象都包含坐标和用户名。您可以根据需要多次迭代对象的响应列表,或者一次通过列表中的对象检索所需的数据。

在何处创建此类?作为一个内部类?如果您需要在两个类之间共享它,比如说一个类读取OSM数据并将列表返回给另一个类进行处理,那么我会做一个常规类(在它自己的源文件中)。如果您在一个类中完成所有处理,我只会使用一个内部类。