当前位置: 首页 > 知识库问答 >
问题:

在ArrayList中查找重复项

邓星光
2023-03-14

我想知道如何实现以下操作:我有两个arraylists,其中的值相互关联。也就是说,同一索引上的arraylists的元素彼此相关。例如:ArrayList1(String ArrayList)=[id1,id2,id3,id2,id2,id1]。ArrayList2(整数ArrayList)=[2,3,2,5,6,3]。

我想创建2个新的arraylists与重复的值不再存在。在上面的例子中,新的arraylists应该是arraylist1=[id1,id2,id3]。arraylist2=[5,14,2]。也就是说,相应地添加第二个arraylist中的值(因为它们与同一索引上的第一个arraylist中的值相关联)。

我不明白怎么开始这个。

共有1个答案

芮祺
2023-03-14

对这两个数组的每个索引i进行迭代,并使用hashmap根据它们的ID累加值。一旦积累完成,hashmap的键将具有没有重复的ID。

    List<String> ids = Arrays.asList(
            "id1",
            "id2",
            "id3",
            "id2",
            "id2",
            "id1"
    );
    List<Integer> vals = Arrays.asList(2, 3, 2, 5, 6, 3);
    Map<String, Integer> m = new HashMap<>();

    for (int i=0; i<ids.size(); i++) {
        String id=ids.get(i);
        int val = vals.get(i);

        m.put(id, m.getOrDefault(id, 0) + val);
    }

    List<String> newIds = new ArrayList<>(m.keySet());
    List<Integer> newVals = new ArrayList<>(m.values());
 类似资料:
  • 问题内容: 我有一张很大的桌子,上面有关于用户的以下数据。 我想在ssn等于但名称不等于的表中找到所有可能的重复项 我的尝试是: 问题答案: 在SSN上进行分组应该做到这一点 ~~~~ ..或如果每个ssn有很多行,而只想查找重复的名称) 编辑,糟糕,被误解

  • 问题内容: 我想在中显示值。A 可能有重复的值(但没有重复的键),但是我只想显示一个值。 因此,我应该查找是否具有重复值。我知道我们可以迭代并使用的返回布尔值。我想知道是否存在任何方法来查找map中的重复值,还是我应该自己编写代码? 问题答案: 一个简单的解决方案是将值列表的大小与设置的值进行比较。

  • 问题内容: 我想在MySQL数据库中提取重复记录。这可以通过以下方式完成: 结果是: 我想将其拉出,以使其显示重复的每一行。就像是: 关于如何做到这一点有什么想法?我试图避免做第一个,然后在代码中用第二个查询查找重复项。 问题答案: 关键是重写此查询,以便可以将其用作子查询。

  • 问题内容: 在一个字段中查找重复项很容易: 所以如果我们有一张桌子 该查询将为我们提供John,Sam,Tom,Tom,因为它们都相同。 但是,我想要的是获取具有 和的 重复项。 也就是说,我想获得“ Tom”,“ Tom”。 我需要这个的原因:我犯了一个错误,并允许插入重复项和值。现在,我需要删除/更改重复项,因此我需要先 找到 它们。 问题答案: SELECT name, email, COU

  • 假设我有一个如下所示的验证表。 在上表中,如果我们观察到场景id 1和3具有相同的验证id 100、101和102。 在这种情况下,我可以说scenario_id=1是scenario_id=3的重复。 我可以得到一个MySql查询来找到这样的重复。 提前谢谢。