【发布时间】:2017-09-02 12:44:14
【问题描述】:
我有我的类对象 (EmployerDetails) 的列表。雇主详细信息包含 4 个参数。列表可能包含具有不同参数的所有对象,或者该列表中的多个对象的参数可能相同。 我的班级是这样的:
public class EmployerDetails {
private String employerId;
private String occupationCode;
private String SchemeCategory;
private String switchingFlag;
}
我已经使用 ArrayList 来检索对象。
假设我有一个包含 10 个雇主对象的列表,其数据集如下:
所有 10 个对象的雇主 ID 相同。
OccupationCode 4 个对象相同,5 个对象不同,1 个对象为 null。
SchemeCategory 9 个对象不同,1 个对象为 null。
switchingFlag 可以是 Y 或 N。
现在我的问题是,我有一个 occupationCode 和一个 schemeCategory,我必须检索满足我的条件的对象,条件是:具有相同的记录雇主ID(上面的例子是10),我必须检索与我的职业代码匹配的记录,并且应该只有一个匹配。例如,如果我的 OccupationCode 与 4 个对象匹配,我将跳过此条件并继续条件 2,即:我将检索占用代码不为空且 schemeCategory 与我的 schemeCategory 匹配的记录。又是第三个条件。
目前我正在使用每个循环迭代列表,在条件 1 中,如果对象的职业代码与我的职业代码匹配,它将进入 if 条件。在上面的示例中,它将执行 4 次,但在迭代时,我必须仅在有一个匹配项时才检索记录。
我可以使用计数器并将对象放在 HashMap 中,如果 count ==1,则在 for 循环完成后检索对象,但这里的问题是,我有 4 个这样的条件,我必须为所有条件和之后编写 for 循环迭代,如果没有结果,那么我必须再次迭代条件 2,依此类推。
这样的问题有解决办法吗?我正在使用 Java 7,但无法使用 Java 8。
谢谢。
【问题讨论】:
-
这样的问题有什么解决办法吗? 是的,可能有。您的实际问题是什么?
-
这样做的最短方法是什么?根据我的逻辑,我必须对所有条件使用 for 循环。
-
没有办法避免循环,如果这是你的问题。您如何将您拥有的代码发布到 codereview.stackexchange.com,而不是要求我们为您提供代码?
-
在Code Review 上发布代码之前,请确保它实际上是on-topic。
-
嗨 Nizet,我现在没有确切的代码,但我已经输入了示例代码。 codereview.stackexchange.com/questions/174647/…
标签: java list collections java-7