gpt4 book ai didi

java - 根据填充的属性对对象列表进行分组

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:46 25 4
gpt4 key购买 nike

我有一个具有 10 个属性的类。我想根据填充或未填充的属性对该类的对象列表进行分组。准确地说,我将得到 2^n 组。我可以迭代列表并编写 2^n 条件并将它们分组到新列表中。除了编写这些开关条件之外,还有其他更好的方法来实现此功能吗?

最佳答案

您可以避免编写多个 switch 语句,并在类本身中拥有一个标识符/键,这有助于了解是否设置了某些属性。

示例:

DemoClass(3个属性用于简化)

public class DemoClass {
public String property1 = null;
public String property2 = null;
public String property3 = null;

public String getKey() {
StringBuilder sb = new StringBuilder();
sb.append(this.property1 != null ? "PROPERTY1" : "").append("|");
sb.append(this.property2 != null ? "PROPERTY2" : "").append("|");
sb.append(this.property3 != null ? "PROPERTY3" : "").append("|");

return sb.toString();
}
}

上面的字段可以通过多种方式填充,例如重载构造函数setter方法。

现在,当您想要分组时,您可以使用 HashMap 并根据其键值将类的对象添加到列表中,如下所示

Map<String, List<DemoClass>> map = new HashMap<>();
for (DemoClass demoClass : demoClasses) {
map.computeIfAbsent(demoClass.getKey(), k -> new ArrayList<>()).add(demoClass);
}

关于java - 根据填充的属性对对象列表进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56639641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com