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数据并将列表返回给另一个类进行处理,那么我会做一个常规类(在它自己的源文件中)。如果您在一个类中完成所有处理,我只会使用一个内部类。