首页 > 解决方案 > 如何计算数组中的对象避免重复?

问题描述

我有一个包含事件对象的数组。在每个对象中,我都有一个具有 childId 和 startDate 和 endDate 的孩子。认为我有 100 个事件的数组,但其中 28 个有重复的 startDates。我想计算每天的事件,而不是所有事件的实际数量。

List<Event> familysEvents = new ArrayList<Event>();
    // List of children
    Map<String,ActualChrChild> children = new HashMap<String,ActualChrChild>();

    for (Child child : response.getChildren()) {
        children.put(child.getId(),child);

    }


    for (RespEvent rEvent : response.getEvents()) {

    Event event = new Event();    

    event.setChildId(rEvent.getChildId());
    event.setFamilyId(rEvent.getFamilyId());
    event.setDate(rEvent.getStartTime().toLocalDate());
    ...

现在我有一个充满事件的数组,使用 size() 很容易获得所有事件的数量,但我想知道特定日期的事件。因此,如果在 2019 年 10 月 17 日有相同 childId 的三个事件,我只想计算一次,而不是三次。所以我想在特定日期获得没有多个事件的特定孩子的数组数量。我想知道该列表中有多少事件,因此如果 childID= 123 在 2019 年 10 月 17 日有三个事件,则只计算一次,而不是三次。

我认为这是可能的,但它超出了我的想象,可能是关于克隆数组的一些内容并从另一个数组中删除。感谢您的帮助!

标签: javalistarraylistcountduplicates

解决方案


推荐阅读