当前位置: 首页 > 面试题库 >

Java 8 Streams:获取非重复计数

裴弘
2023-03-14
问题内容

这是输入和输出的SQL版本:

     with tab1 as (

        select 1 as id from dual union all
        select 1 as id from dual union all
        select 2 as id from dual union all
        select 2 as id from dual union all
        select 5 as id from dual 
        )

    select id from tab1 group by id having count(id)=1;

Output is Id=5 and count is 1

由于5是不可重复的,如何使用JAVA 8流实现它?

我在下面尝试过,但显然给出了错误的结果

List<Integer> myList = new ArrayList<Integer>();
                myList.add(1);
                myList.add(1);
                myList.add(2);
                myList.add(2);
                myList.add(5);

                Long f =  myList.stream()
                          .distinct().count();

                System.out.println(f);

问题答案:
long result = myList.stream()
         .collect(Collectors.groupingBy(
                   Function.identity(),
                  Collectors.counting()))
         .entrySet()
         .stream()
         .filter(entry -> entry.getValue() == 1)
         .map(Entry::getKey)
         .count();

好吧,您将所有元素收集到Map<Integer, Long>,其中键是值本身,值是重复次数。后来我们流从产生的地图的条目集和filter只有那些项目,对具有计数1(这意味着他们不重复),以后我们mapEntry::getKey-让从列表中值和计数。



 类似资料:
  • 基本上,对于每个user_id,我需要类似的东西, 我想最终的结果只是返回所有的总数。

  • 我有一个熊猫数据框,其中包含如下所示的数据: 所以ID可以在特定月份的任何类下,下个月他的类可能会改变。现在我想做的是,为每个ID获取它在特定类别下的月数,以及它属于的最新类别。像下面这样: 如何在python中实现这一点。有人能帮我吗?另外,由于真实的数据集是巨大的,并且无法手动验证,我如何才能获得属于多个类的ID列表?

  • 我得到了这个错误,我知道这个问题已经在这里解决过了,因为人们没有在函数中添加返回->。我不明白为什么这仍然给我带来错误。

  • 问题内容: 我正在编写一个非常简单的查询,但是由于某种原因,我得到了重复的值。 在返回重复值。即: 但是,直接在mysql中运行此查询 不返回重复值。 谁能发现哪里出了问题? 问题答案: 快速的解决方法是使用“不同的根实体结果转换器”。 但这只是一个工作环境。 我怀疑问题属于您的映射。如果从ProcessInstance到其他对象之间急切地加载了1:n关系(称为X),并且一个ProcessInst

  • 问题内容: 我有一张有两列的table。 我希望列“ num”显示每个重复项的增量计数器: 除了mySQL查询,是否可以在没有任何其他脚本的情况下完成此操作? 问题答案: 不幸的是,MySQL没有您需要的窗口功能。因此,您将必须使用以下内容: 最终查询 参见带有演示的SQL Fiddle 解释: 首先,内部选择,这会将模拟应用于表中的所有记录(请参阅带有演示的SQL Fiddle ): 查询的第二

  • 问题内容: 例如,假设我有一个可能包含以下值: 现在我想要检索的数量和,我想能够区分什么我有,要么还是因为在现实中,我可以在ArrayList中的任何对象,我必须能够区分它们。 我当时想做的是先将转换为,以保持顺序并删除重复项,这样我就可以了,但是我如何获取每个的数量并将其与适当的元素相关联? 总的来说,我想做的是能够编写一个方法让我输出: 但是不知道和是元素,因为它们可能是其他类似或的东西。 问