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

用谓词对集合进行分区的库方法

商宝
2023-03-14
public static <E> Pair<Collection<E>, Collection<E>> partition(Collection<E> source, Predicate<? super E> predicate)

共有1个答案

步建茗
2023-03-14

使用Guava的multimaps.index

下面是一个示例,它将单词列表分为两部分:长度>3的单词和长度>3的单词。

List<String> words = Arrays.asList("foo", "bar", "hello", "world");

ImmutableListMultimap<Boolean, String> partitionedMap = Multimaps.index(words, new Function<String, Boolean>(){
    @Override
    public Boolean apply(String input) {
        return input.length() > 3;
    }
});
System.out.println(partitionedMap);

印花:

false=[foo, bar], true=[hello, world]
 类似资料:
  • 问题内容: 我有一个对象集合,我想将其划分为两个集合,其中一个通过谓词,而其中一个失败谓词。我希望有一个Guava方法可以做到这一点,但是最接近的是filter,它没有给我其他的集合。 我会想像一下方法的签名,就像这样: 我意识到这对自己进行编码非常快,但是我正在寻找一种可以满足我需要的现有库方法。 问题答案: 使用番石榴的。 这是一个示例,该示例将单词列表分为两部分:长度大于3的单词和不大于3的

  • 问题内容: 我有一个清单,我想分成几个小清单。 说出所有包含“ aaa”的项目,所有包含“ bbb”的项目以及更多谓词。 我该如何使用java8? 我看到了这篇文章,但只拆分为2个列表。 我看到了这篇文章,但是在Java 8之前已经很老了。 问题答案: 就@RealSkeptic中解释的那样,注释只能返回两个结果:true和false。这意味着您将只能将数据分为两组。 您需要的是某种可以让您确定应

  • 使用java stream,我有一个ClassA列表,应用于流以进行过滤,所以使用List。stream()。过滤器(谓词)。这样,谓词就需要ClassA的谓词来应用,但我真的想要String的谓词,因为ClassA。Field1是字符串类型。因此,与其让谓词包含f- 缺少的链接是什么,我需要如何转换流才能做到这一点? 对于其他上下文,在过滤之后,我需要从过滤列表中提取第二个字段,因此目标是拥有C

  • 假设我有n个值为的元素。让所有值的总和表示为X,我们强制每个元素都是 放入具有最小累积和的分区中。对如何解决这个问题有什么想法吗?

  • 以下是更详细的错误消息: 我将代码中的问题隔离在下面的某个地方,尽管我不知道抛出这个异常的具体原因: gradle.build-项目

  • 我有一种情况,我想根据强加给其特定类型的谓词集合来过滤对象:这可以通过预编译的来完成吗? 我说上面的,因为我希望我的谓词基于该特定类型...