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

如何在Java 8中计算元素并查找第一[重复]

卢俭
2023-03-14

我有一个令牌列表,这个列表必须只包含一个具有活动状态元素。如果没有一个元素的状态等于active,我需要抛出一个异常

我想用lambda expresssions来写这个,这是我的代码:

List<Token> listResult = tokenRepository.findByReference(tokenRefId);
if (listResult == null || listResult.isEmpty()) {
   throw new IllegalStateException(Messages.TOKEN_NOT_FOUND);
}

if (listResult.stream().filter(t -> t.getStatus().equals(TokenStatus.ACTIVE.code())).count() != 1) {
   throw new IllegalStateException(Messages.ONE_TOKEN_MUST_BE_ACTIVATED);
}
Token token = listResult.stream().filter(t -> t.getStatus().equals(TokenStatus.ACTIVE.code()))
                .findFirst().orElseThrow(() -> new IllegalStateException(Messages.ONE_TOKEN_MUST_BE_ACTIVATED)); 

共有1个答案

彭畅
2023-03-14

您可以创建一个最多包含两个令牌列表,然后检查其大小:

List<Token> filtered =
    listResult.stream()
              .filter(t -> t.getStatus().equals(TokenStatus.ACTIVE.code()))
              .limit(2)
              .collect(Collectors.toList());
if (filtered.size () != 1) {
    throw new new IllegalStateException(Messages.ONE_TOKEN_MUST_BE_ACTIVATED);
}
Token token = filtered.get(0);
 类似资料:
  • 我试图列出整数列表中的重复元素,例如, 使用jdk 8的流。有人试过吗?要删除重复项,我们可以使用distinct() api。但是如何找到重复的元素呢?有人能帮我吗?

  • 问题内容: 我需要分离并计算arraylist中有多少个相同的值,并根据出现的次数进行打印。 我有一个名为digits的arraylist: 我创建了一个将每个值分开并将其保存到新数组的方法。 之后,我得到了一个名为数字的新数组。我在此数组上使用排序 和我的ArrayList看起来像这样: 它具有: 我需要根据数字的多少来打印出数字字符串,所以它看起来应该像这样:1354678290 问题答案:

  • 我有以下几门课: 我有一个物品清单。我想遍历列表并找到具有特定ID的实例。我试着通过溪流来做。

  • 我不能得到子元素。 我可以用appium inspector看到childNameTV元素下的childNameLabel元素 例如,我尝试查找第一个子元素的文本;

  • 我有一个列表[z”,“1”,“3”,“x”,“y”,“00”,“x”,“y”,“4”],在这种情况下,我需要得到字符串后的第一个

  • 我是应用程序新手。 我正在学习购物应用程序(Flipkart)的自动化应用程序。 我正在尝试从“推荐给您的折扣”列表中选择第5个元素。 为了做到这一点,我必须水平滚动以接触到该元素。但是我在获取容器元素时遇到了问题,其中存在“为您推荐的折扣”元素,因此我可以获取。 我猜问题是flipkart的用户界面总是在变。 我正在使用< code>uiautomator来< code >查找元素。下面是UI的