java.util.stream.Collectors.partitioningBy()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(11.8k)|赞(0)|评价(0)|浏览(269)

本文整理了Java中java.util.stream.Collectors.partitioningBy()方法的一些代码示例,展示了Collectors.partitioningBy()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Collectors.partitioningBy()方法的具体详情如下:
包路径:java.util.stream.Collectors
类名称:Collectors
方法名:partitioningBy

Collectors.partitioningBy介绍

暂无

代码示例

代码示例来源:origin: RichardWarburton/java-8-lambdas-exercises

  1. public Map<Boolean, List<Artist>> bandsAndSoloRef(Stream<Artist> artists) {
  2. return artists.collect(partitioningBy(Artist::isSolo));
  3. }
  4. // END BANDS_AND_SOLO_REF

代码示例来源:origin: rest-assured/rest-assured

  1. private static void applyConfigurersAndFilter(Object[] configurersOrExchangeFilterFunctions,
  2. WebTestClient.Builder builder) {
  3. Map<Boolean, List<Object>> partitionedByConfigurer = Arrays.stream(configurersOrExchangeFilterFunctions)
  4. .collect(partitioningBy(WebTestClientConfigurer.class::isInstance));
  5. partitionedByConfigurer.get(true).stream().map(WebTestClientConfigurer.class::cast)
  6. .forEach(builder::apply);
  7. partitionedByConfigurer.get(false).stream()
  8. .filter(ExchangeFilterFunction.class::isInstance)
  9. .map(ExchangeFilterFunction.class::cast)
  10. .forEach(builder::filter);
  11. }
  12. }

代码示例来源:origin: knowm/XChange

  1. @SuppressWarnings("unchecked")
  2. public static OpenOrders adaptOpenOrders(CoinbaseProOrder[] coinbaseExOpenOrders) {
  3. Stream<Order> orders =
  4. Arrays.asList(coinbaseExOpenOrders).stream().map(CoinbaseProAdapters::adaptOrder);
  5. Map<Boolean, List<Order>> twoTypes =
  6. orders.collect(Collectors.partitioningBy(t -> t instanceof LimitOrder));
  7. @SuppressWarnings("rawtypes")
  8. List limitOrders = twoTypes.get(true);
  9. return new OpenOrders(limitOrders, twoTypes.get(false));
  10. }

代码示例来源:origin: goldmansachs/gs-collections

  1. @Benchmark
  2. public Map<Boolean, List<Integer>> serial_lazy_jdk()
  3. {
  4. return this.integersJDK.stream().collect(Collectors.partitioningBy(each -> each % 2 == 0));
  5. }

代码示例来源:origin: shekhargulati/99-problems

  1. public static <T> Map<Boolean, List<T>> split(List<T> list, int n) {
  2. return IntStream
  3. .range(0, list.size())
  4. .mapToObj(i -> new SimpleEntry<>(i, list.get(i)))
  5. .collect(partitioningBy(entry -> entry.getKey() < n, mapping(SimpleEntry::getValue, toList())));
  6. }
  7. }

代码示例来源:origin: RichardWarburton/java-8-lambdas-exercises

  1. public Map<Boolean, List<Artist>> bandsAndSolo(Stream<Artist> artists) {
  2. return artists.collect(partitioningBy(artist -> artist.isSolo()));
  3. }
  4. // END BANDS_AND_SOLO

代码示例来源:origin: rest-assured/rest-assured

  1. public static WebTestClientFactory of(Object[] controllersOrConfigurersOrExchangeFilterFunctions) {
  2. Map<Boolean, List<Object>> partitionedByConfigurer = Arrays.stream(controllersOrConfigurersOrExchangeFilterFunctions)
  3. .collect(partitioningBy(WebTestClientConfigurer.class::isInstance));
  4. List<Object> controllersAndExchangeFunctions = partitionedByConfigurer.get(false);
  5. Map<Boolean, List<Object>> partitionedByExchangeFunction = controllersAndExchangeFunctions.stream()
  6. .collect(partitioningBy(ExchangeFilterFunction.class::isInstance));
  7. List<WebTestClientConfigurer> configurers = partitionedByConfigurer.get(true).stream()
  8. .map(WebTestClientConfigurer.class::cast)
  9. .collect(toList());
  10. List<ExchangeFilterFunction> exchangeFilterFunctions = partitionedByExchangeFunction.get(true).stream()
  11. .map(ExchangeFilterFunction.class::cast)
  12. .collect(toList());
  13. WebTestClient.Builder builder = WebTestClient.bindToController(partitionedByExchangeFunction.get(false)
  14. .toArray())
  15. .configureClient();
  16. configurers.forEach(builder::apply);
  17. exchangeFilterFunctions.forEach(builder::filter);
  18. return new BuilderBasedWebTestClientFactory(builder);
  19. }

代码示例来源:origin: dropwizard/dropwizard

  1. .collect(Collectors.partitioningBy(x ->
  2. disabled.stream().noneMatch(pat -> pat.matcher(x).matches()) &&
  3. enabled.stream().anyMatch(pat -> pat.matcher(x).matches()) &&

代码示例来源:origin: google/error-prone

  1. @Override
  2. public OrganizedImports organizeImports(List<Import> imports) {
  3. OrganizedImports organized = new OrganizedImports();
  4. // Group into static and non-static.
  5. Map<Boolean, List<Import>> partionedByStatic =
  6. imports.stream().collect(Collectors.partitioningBy(Import::isStatic));
  7. for (Boolean key : order.groupOrder()) {
  8. organizePartition(organized, partionedByStatic.get(key));
  9. }
  10. return organized;
  11. }

代码示例来源:origin: prestodb/presto

  1. @Override
  2. public PlanNode visitMarkDistinct(MarkDistinctNode node, RewriteContext<Expression> context)
  3. {
  4. Set<Symbol> pushDownableSymbols = ImmutableSet.copyOf(node.getDistinctSymbols());
  5. Map<Boolean, List<Expression>> conjuncts = extractConjuncts(context.get()).stream()
  6. .collect(Collectors.partitioningBy(conjunct -> SymbolsExtractor.extractUnique(conjunct).stream().allMatch(pushDownableSymbols::contains)));
  7. PlanNode rewrittenNode = context.defaultRewrite(node, combineConjuncts(conjuncts.get(true)));
  8. if (!conjuncts.get(false).isEmpty()) {
  9. rewrittenNode = new FilterNode(idAllocator.getNextId(), rewrittenNode, combineConjuncts(conjuncts.get(false)));
  10. }
  11. return rewrittenNode;
  12. }

代码示例来源:origin: goldmansachs/gs-collections

  1. @Benchmark
  2. public Map<Boolean, List<Integer>> serial_lazy_streams_gsc()
  3. {
  4. return this.integersGSC.stream().collect(Collectors.partitioningBy(each -> each % 2 == 0));
  5. }

代码示例来源:origin: prestodb/presto

  1. @Override
  2. public PlanNode visitGroupId(GroupIdNode node, RewriteContext<Expression> context)
  3. {
  4. Map<Symbol, SymbolReference> commonGroupingSymbolMapping = node.getGroupingColumns().entrySet().stream()
  5. .filter(entry -> node.getCommonGroupingColumns().contains(entry.getKey()))
  6. .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().toSymbolReference()));
  7. Predicate<Expression> pushdownEligiblePredicate = conjunct -> SymbolsExtractor.extractUnique(conjunct).stream()
  8. .allMatch(commonGroupingSymbolMapping.keySet()::contains);
  9. Map<Boolean, List<Expression>> conjuncts = extractConjuncts(context.get()).stream().collect(Collectors.partitioningBy(pushdownEligiblePredicate));
  10. // Push down conjuncts from the inherited predicate that apply to common grouping symbols
  11. PlanNode rewrittenNode = context.defaultRewrite(node, inlineSymbols(commonGroupingSymbolMapping, combineConjuncts(conjuncts.get(true))));
  12. // All other conjuncts, if any, will be in the filter node.
  13. if (!conjuncts.get(false).isEmpty()) {
  14. rewrittenNode = new FilterNode(idAllocator.getNextId(), rewrittenNode, combineConjuncts(conjuncts.get(false)));
  15. }
  16. return rewrittenNode;
  17. }

代码示例来源:origin: google/error-prone

  1. @Override
  2. public OrganizedImports organizeImports(List<Import> imports) {
  3. // Group into static and non-static. Each group is a set sorted by type.
  4. Map<Boolean, ImmutableSortedSet<Import>> partionedByStatic =
  5. imports.stream()
  6. .collect(
  7. Collectors.partitioningBy(
  8. Import::isStatic, toImmutableSortedSet(Comparator.comparing(Import::getType))));
  9. return new OrganizedImports()
  10. // Add groups, in the appropriate order.
  11. .addGroups(partionedByStatic, order.groupOrder());
  12. }
  13. }

代码示例来源:origin: yu199195/Raincat

  1. private Map<Boolean, List<TxTransactionItem>> filterData(final List<TxTransactionItem> txTransactionItems) {
  2. //过滤掉发起方的数据,发起方已经进行提交,不需要再通信进行
  3. final List<TxTransactionItem> collect = txTransactionItems.stream()
  4. .filter(item -> item.getRole() == TransactionRoleEnum.ACTOR.getCode())
  5. .collect(Collectors.toList());
  6. if (CollectionUtils.isEmpty(collect)) {
  7. return null;
  8. }
  9. return collect.stream().collect(Collectors.partitioningBy(item ->
  10. Objects.equals(Address.getInstance().getDomain(), item.getTmDomain())));
  11. }

代码示例来源:origin: Vedenin/useful-java-links

  1. Map<Boolean, List<Integer>> parts = numbers.stream().collect(Collectors.partitioningBy((p) -> p % 2 == 0));
  2. System.out.println("parts = " + parts); // print parts = {false=[1, 3], true=[2, 4]}

代码示例来源:origin: prestodb/presto

  1. @Override
  2. public PlanNode visitProject(ProjectNode node, RewriteContext<Expression> context)
  3. {
  4. Set<Symbol> deterministicSymbols = node.getAssignments().entrySet().stream()
  5. .filter(entry -> DeterminismEvaluator.isDeterministic(entry.getValue()))
  6. .map(Map.Entry::getKey)
  7. .collect(Collectors.toSet());
  8. Predicate<Expression> deterministic = conjunct -> SymbolsExtractor.extractUnique(conjunct).stream()
  9. .allMatch(deterministicSymbols::contains);
  10. Map<Boolean, List<Expression>> conjuncts = extractConjuncts(context.get()).stream().collect(Collectors.partitioningBy(deterministic));
  11. // Push down conjuncts from the inherited predicate that only depend on deterministic assignments with
  12. // certain limitations.
  13. List<Expression> deterministicConjuncts = conjuncts.get(true);
  14. // We partition the expressions in the deterministicConjuncts into two lists, and only inline the
  15. // expressions that are in the inlining targets list.
  16. Map<Boolean, List<Expression>> inlineConjuncts = deterministicConjuncts.stream()
  17. .collect(Collectors.partitioningBy(expression -> isInliningCandidate(expression, node)));
  18. List<Expression> inlinedDeterministicConjuncts = inlineConjuncts.get(true).stream()
  19. .map(entry -> inlineSymbols(node.getAssignments().getMap(), entry))
  20. .collect(Collectors.toList());
  21. PlanNode rewrittenNode = context.defaultRewrite(node, combineConjuncts(inlinedDeterministicConjuncts));
  22. // All deterministic conjuncts that contains non-inlining targets, and non-deterministic conjuncts,
  23. // if any, will be in the filter node.
  24. List<Expression> nonInliningConjuncts = inlineConjuncts.get(false);
  25. nonInliningConjuncts.addAll(conjuncts.get(false));
  26. if (!nonInliningConjuncts.isEmpty()) {
  27. rewrittenNode = new FilterNode(idAllocator.getNextId(), rewrittenNode, combineConjuncts(nonInliningConjuncts));
  28. }
  29. return rewrittenNode;
  30. }

代码示例来源:origin: prestodb/presto

  1. @Override
  2. public PlanNode visitWindow(WindowNode node, RewriteContext<Expression> context)
  3. {
  4. List<Symbol> partitionSymbols = node.getPartitionBy();
  5. // TODO: This could be broader. We can push down conjucts if they are constant for all rows in a window partition.
  6. // The simplest way to guarantee this is if the conjucts are deterministic functions of the partitioning symbols.
  7. // This can leave out cases where they're both functions of some set of common expressions and the partitioning
  8. // function is injective, but that's a rare case. The majority of window nodes are expected to be partitioned by
  9. // pre-projected symbols.
  10. Predicate<Expression> isSupported = conjunct ->
  11. DeterminismEvaluator.isDeterministic(conjunct) &&
  12. SymbolsExtractor.extractUnique(conjunct).stream()
  13. .allMatch(partitionSymbols::contains);
  14. Map<Boolean, List<Expression>> conjuncts = extractConjuncts(context.get()).stream().collect(Collectors.partitioningBy(isSupported));
  15. PlanNode rewrittenNode = context.defaultRewrite(node, combineConjuncts(conjuncts.get(true)));
  16. if (!conjuncts.get(false).isEmpty()) {
  17. rewrittenNode = new FilterNode(idAllocator.getNextId(), rewrittenNode, combineConjuncts(conjuncts.get(false)));
  18. }
  19. return rewrittenNode;
  20. }

代码示例来源:origin: zalando/zalenium

  1. public synchronized void cleanupDashboard() throws IOException {
  2. List<TestInformation> informationList = loadTestInformationFromFile();
  3. Map<Boolean, List<TestInformation>> partitioned = informationList.stream()
  4. .collect(Collectors.partitioningBy(testInformation -> testInformation.getRetentionDate().getTime() > new Date().getTime()));
  5. List<TestInformation> validTestsInformation = partitioned.get(true);
  6. List<TestInformation> invalidTestsInformation = partitioned.get(false);
  7. if(invalidTestsInformation.size() > 0) {
  8. LOGGER.info("Cleaning up " + invalidTestsInformation.size() + " test(s) from Dashboard");
  9. for(TestInformation testInformation : invalidTestsInformation) {
  10. deleteIfExists(new File(getLocalVideosPath() + "/" + testInformation.getFileName()));
  11. deleteIfExists(new File(testInformation.getLogsFolderPath()));
  12. }
  13. cleanupFiles(false);
  14. dumpTestInformationToFile(validTestsInformation);
  15. }
  16. }

代码示例来源:origin: prestodb/presto

  1. .collect(Collectors.partitioningBy(PlanNodeDecorrelator.DecorrelatingVisitor.this::isCorrelated));
  2. List<Expression> correlatedPredicates = ImmutableList.copyOf(predicates.get(true));
  3. List<Expression> uncorrelatedPredicates = ImmutableList.copyOf(predicates.get(false));

代码示例来源:origin: apache/nifi

  1. .collect(Collectors.partitioningBy(record -> record.getType() == RepositoryRecordType.CLEANUP_TRANSIENT_CLAIMS));

相关文章