基于一个属性组合数组中的对象

时间:2014-12-20 11:25:13

标签: java

我有一个对象数组,例如Animal[4]元素。在我的最终结果中,我需要准备另一个Animal数组,比如说Animal[2]。任何人都可以建议如何基于单个属性type将对象的属性合并到唯一对象。

例如:

public class Animal {
    private String type;    
    private boolean isWild,
    private Boolean isCarnivarous;
}

对象数组值:

我的第一个对象数据动物:{type: XXX, isWild: true, isCarni: false}
我的第二个对象数据动物:{type: YYY, isWild: true, isCarni: false}
我的第三个对象数据动物:{type: XXX, isWild: false, isCarni: true}
我的第四个对象数据动物:{type: zzz, isWild: false, isCarni: true}

最终结果应为:

我的第一个对象数据动物:{type: XXX, isWild: true, isCarni: true}
我的第二个对象数据动物:{type: YYY, isWild: true, isCarni: false}
我的第三个对象数据动物:{type: zzz, isWild: false, isCarni: true}

1 个答案:

答案 0 :(得分:0)

我假设你需要使用OR语义来合并各种布尔属性。是吗?

如果是这样,请遍历数组并将对象放入Map<String, Animal>,其中键为type。这将以相同的类型对动物条目进行重复数据删除。

但是在放入每个值之前,检查一个值是否已经存在并相应地改变布尔属性。