管理java列表对象并迭代它们

管理java列表对象并迭代它们,java,collections,hashmap,Java,Collections,Hashmap,我有一个列表,它是一个java对象,如下所示 public class TaxIdentifier { public String id; public String gender; public String childId; public String grade, public String isProcessed; ////.../// getters and setters ///..../// } Records in DB looks like below, id ge

我有一个列表,它是一个java对象,如下所示

public class TaxIdentifier {
public String id;
public String gender;
public String childId; 
public String grade,
public String isProcessed;
////...///

getters and setters

///....///
}

Records in DB looks like below,
id   gender childId grader isProcessed
11      M     111       3       Y
12      M     121       4       Y
11      M     131       2       Y
13      M     141       5       Y
14      M     151       1       Y
15      M     161       6       Y   


List<TaxIdentifier> taxIdentifierList = new ArrayList<TaxIdentifier>();

for (TaxIdentifier taxIdentifier : taxIdentifierList) {             


}
公共类出租车识别器{
公共字符串id;
社会性别;
公共字符串childId;
公共弦级,
已处理公共字符串;
////...///
接球手和接球手
///....///
}
数据库中的记录如下所示,
id性别儿童id分级器已处理
11M 1113 Y
12米121 4 Y
11米131 2 Y
13米141 5年
14M 151 1 Y
15米161 6年
List TaxiIdentifierList=新的ArrayList();
对于(TaxiIdentifier TaxiIdentifier:TaxiIdentifierList){
}
当我处理for循环并得到id=11时,我必须检查是否有id=11的其他记录,并一起处理它们,然后做一个DB操作,然后取下一个记录(在本例中为12),看看是否有id=12的其他记录,依此类推

一个选项是获取id并查询DB以返回所有id=11,依此类推。 但这是太多的来回与数据库


在java中做同样事情的最佳方法是什么?请给出建议。

如果您需要处理相应数据库表中的所有记录,则应在1次数据库往返中检索所有记录

之后,您可以收集字典数据结构中的所有
taxidentier
记录,并以任何方式进行处理

简单的示例可能如下所示:

Map<String, List<TaxIdentifier>> result = repositoty.findAll().stream().collect(Collectors.groupingBy(TaxIdentifier::getId));

我会利用你数据库的强大功能。查询时,应按id按升序排列查询。不确定您正在使用哪个数据库,但我会:

SELECT * FROM MY_DATABASE WHERE IS_PROCESSED = 'N' ORDER BY ID ASC; 

这就减轻了将其从应用程序中排序到数据库中的负担。然后,您的查询返回未处理的记录,其顶部的id最低。然后按顺序完成它们

我们能看到
for
循环中的(相关部分)内容吗?我很难理解你在那里做什么,问题是什么。
id
s是否用java创建并保存到数据库中?或者从数据库中读取并用于java中的比较?请提供一个mcve:为什么不在id上使用哈希映射和组数据?@Syed Mehtab Hassan-您能解释一下如何做到这一点吗。@JNPW
SELECT * FROM MY_DATABASE WHERE IS_PROCESSED = 'N' ORDER BY ID ASC;