java.util.stream.Collectors类的使用及代码示例

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

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

Collectors介绍

暂无

代码示例

canonical example by Tabnine

  1. private Double calculateAverageGrade(Map<String, List<Integer>> gradesList, String studentName)
  2. throws Exception {
  3. return Optional.ofNullable(gradesList.get(studentName))
  4. .map(list -> list.stream().collect(Collectors.averagingDouble(x -> x)))
  5. .orElseThrow(() -> new Exception("Student not found - " + studentName));
  6. }

canonical example by Tabnine

  1. public List<Integer> findDivisors(int number) {
  2. return Stream.iterate(1, k -> ++k)
  3. .limit(number)
  4. .filter(k -> number % k == 0)
  5. .collect(Collectors.toList());
  6. }

canonical example by Tabnine

  1. public void printFibonacciSequence(int length) {
  2. System.out.println(
  3. Stream.iterate(new long[] {0, 1}, pair -> new long[] {pair[1], pair[0] + pair[1]})
  4. .limit(length)
  5. .map(pair -> Long.toString(pair[1]))
  6. .collect(Collectors.joining(", ")));
  7. }

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

  1. @Override
  2. public synchronized Optional<List<String>> getAllTables(String databaseName)
  3. {
  4. requireNonNull(databaseName, "databaseName is null");
  5. Optional<Database> database = getDatabase(databaseName);
  6. if (!database.isPresent()) {
  7. return Optional.empty();
  8. }
  9. Path databaseMetadataDirectory = getDatabaseMetadataDirectory(databaseName);
  10. List<String> tables = getChildSchemaDirectories(databaseMetadataDirectory).stream()
  11. .map(Path::getName)
  12. .collect(toList());
  13. return Optional.of(ImmutableList.copyOf(tables));
  14. }

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

  1. private static Optional<Domain> getDomain(OptionalInt timestampOrdinalPosition, TupleDomain<LocalFileColumnHandle> predicate)
  2. {
  3. Optional<Map<LocalFileColumnHandle, Domain>> domains = predicate.getDomains();
  4. Domain domain = null;
  5. if (domains.isPresent() && timestampOrdinalPosition.isPresent()) {
  6. Map<LocalFileColumnHandle, Domain> domainMap = domains.get();
  7. Set<Domain> timestampDomain = domainMap.entrySet().stream()
  8. .filter(entry -> entry.getKey().getOrdinalPosition() == timestampOrdinalPosition.getAsInt())
  9. .map(Map.Entry::getValue)
  10. .collect(toSet());
  11. if (!timestampDomain.isEmpty()) {
  12. domain = Iterables.getOnlyElement(timestampDomain);
  13. }
  14. }
  15. return Optional.ofNullable(domain);
  16. }

代码示例来源:origin: spring-projects/spring-framework

  1. private String formatHeaders(HttpHeaders headers, String delimiter) {
  2. return headers.entrySet().stream()
  3. .map(entry -> entry.getKey() + ": " + entry.getValue())
  4. .collect(Collectors.joining(delimiter));
  5. }

代码示例来源:origin: spring-projects/spring-framework

  1. private static List<PathPattern> parse(String[] paths, PathPatternParser parser) {
  2. return Arrays
  3. .stream(paths)
  4. .map(path -> {
  5. if (StringUtils.hasText(path) && !path.startsWith("/")) {
  6. path = "/" + path;
  7. }
  8. return parser.parse(path);
  9. })
  10. .collect(Collectors.toList());
  11. }
  12. }

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

  1. List<HivePartition> partitions = hiveLayoutHandle.getPartitions().get();
  2. Optional<DiscretePredicates> discretePredicates = Optional.empty();
  3. if (!partitionColumns.isEmpty()) {
  4. Iterable<TupleDomain<ColumnHandle>> partitionDomains = Iterables.transform(partitions, (hivePartition) -> TupleDomain.fromFixedValues(hivePartition.getKeys()));
  5. discretePredicates = Optional.of(new DiscretePredicates(partitionColumns, partitionDomains));
  6. hiveBucketHandle.getReadBucketCount(),
  7. hiveBucketHandle.getColumns().stream()
  8. .map(HiveColumnHandle::getHiveType)
  9. .collect(Collectors.toList()),
  10. OptionalInt.empty()),
  11. hiveBucketHandle.getColumns().stream()
  12. .map(ColumnHandle.class::cast)
  13. .collect(toList())));
  14. Optional.empty(),
  15. discretePredicates,
  16. ImmutableList.of());

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

  1. .filter(TestColumn::isPartitionKey)
  2. .map(input -> new HivePartitionKey(input.getName(), (String) input.getWriteValue()))
  3. .collect(toList());
  4. split.getLength(),
  5. splitProperties,
  6. TupleDomain.all(),
  7. getColumnHandles(testColumns),
  8. partitionKeys,
  9. DateTimeZone.getDefault(),
  10. TYPE_MANAGER,
  11. ImmutableMap.of(),
  12. Optional.empty(),
  13. false);
  14. RecordCursor cursor = ((RecordPageSource) pageSource.get()).getCursor();

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

  1. @Override
  2. public ActualProperties visitTableScan(TableScanNode node, List<ActualProperties> inputProperties)
  3. {
  4. checkArgument(node.getLayout().isPresent(), "table layout has not yet been chosen");
  5. TableLayout layout = metadata.getLayout(session, node.getLayout().get());
  6. Map<ColumnHandle, Symbol> assignments = ImmutableBiMap.copyOf(node.getAssignments()).inverse();
  7. ActualProperties.Builder properties = ActualProperties.builder();
  8. // Globally constant assignments
  9. Map<ColumnHandle, NullableValue> globalConstants = new HashMap<>();
  10. extractFixedValues(node.getCurrentConstraint()).orElse(ImmutableMap.of())
  11. .entrySet().stream()
  12. .filter(entry -> !entry.getValue().isNull())
  13. .forEach(entry -> globalConstants.put(entry.getKey(), entry.getValue()));
  14. Map<Symbol, NullableValue> symbolConstants = globalConstants.entrySet().stream()
  15. .filter(entry -> assignments.containsKey(entry.getKey()))
  16. .collect(toMap(entry -> assignments.get(entry.getKey()), Map.Entry::getValue));
  17. properties.constants(symbolConstants);
  18. // Partitioning properties
  19. properties.global(deriveGlobalProperties(layout, assignments, globalConstants));
  20. // Append the global constants onto the local properties to maximize their translation potential
  21. List<LocalProperty<ColumnHandle>> constantAppendedLocalProperties = ImmutableList.<LocalProperty<ColumnHandle>>builder()
  22. .addAll(globalConstants.keySet().stream().map(ConstantProperty::new).iterator())
  23. .addAll(layout.getLocalProperties())
  24. .build();
  25. properties.local(LocalProperties.translate(constantAppendedLocalProperties, column -> Optional.ofNullable(assignments.get(column))));
  26. return properties.build();
  27. }

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

  1. /**
  2. * Get the physical layout for a inserting into an existing table.
  3. */
  4. default Optional<ConnectorNewTableLayout> getInsertLayout(ConnectorSession session, ConnectorTableHandle tableHandle)
  5. {
  6. List<ConnectorTableLayout> layouts = getTableLayouts(session, tableHandle, new Constraint<>(TupleDomain.all(), map -> true), Optional.empty())
  7. .stream()
  8. .map(ConnectorTableLayoutResult::getTableLayout)
  9. .filter(layout -> layout.getTablePartitioning().isPresent())
  10. .collect(toList());
  11. if (layouts.isEmpty()) {
  12. return Optional.empty();
  13. }
  14. if (layouts.size() > 1) {
  15. throw new PrestoException(NOT_SUPPORTED, "Tables with multiple layouts can not be written");
  16. }
  17. ConnectorTableLayout layout = layouts.get(0);
  18. ConnectorPartitioningHandle partitioningHandle = layout.getTablePartitioning().get().getPartitioningHandle();
  19. Map<ColumnHandle, String> columnNamesByHandle = getColumnHandles(session, tableHandle).entrySet().stream()
  20. .collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
  21. List<String> partitionColumns = layout.getTablePartitioning().get().getPartitioningColumns().stream()
  22. .map(columnNamesByHandle::get)
  23. .collect(toList());
  24. return Optional.of(new ConnectorNewTableLayout(partitioningHandle, partitionColumns));
  25. }

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

  1. @Override
  2. public ConnectorSplitSource getSplits(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorTableLayoutHandle layout, SplitSchedulingStrategy splitSchedulingStrategy)
  3. {
  4. JmxTableLayoutHandle jmxLayout = (JmxTableLayoutHandle) layout;
  5. JmxTableHandle tableHandle = jmxLayout.getTable();
  6. TupleDomain<ColumnHandle> predicate = jmxLayout.getConstraint();
  7. //TODO is there a better way to get the node column?
  8. Optional<JmxColumnHandle> nodeColumnHandle = tableHandle.getColumnHandles().stream()
  9. .filter(jmxColumnHandle -> jmxColumnHandle.getColumnName().equals(NODE_COLUMN_NAME))
  10. .findFirst();
  11. checkState(nodeColumnHandle.isPresent(), "Failed to find %s column", NODE_COLUMN_NAME);
  12. List<ConnectorSplit> splits = nodeManager.getAllNodes().stream()
  13. .filter(node -> {
  14. NullableValue value = NullableValue.of(createUnboundedVarcharType(), utf8Slice(node.getNodeIdentifier()));
  15. return predicate.overlaps(fromFixedValues(ImmutableMap.of(nodeColumnHandle.get(), value)));
  16. })
  17. .map(node -> new JmxSplit(tableHandle, ImmutableList.of(node.getHostAndPort())))
  18. .collect(toList());
  19. return new FixedSplitSource(splits);
  20. }
  21. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Override
  2. public Set<Entry<String, List<String>>> entrySet() {
  3. return Collections.unmodifiableSet(this.headers.entrySet().stream()
  4. .map(AbstractMap.SimpleImmutableEntry::new)
  5. .collect(Collectors.toSet()));
  6. }

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

  1. Map<ColumnHandle, NullableValue> fixedValues = TupleDomain.extractFixedValues(tupleDomain).orElse(ImmutableMap.of())
  2. .entrySet().stream()
  3. .filter(entry -> !indexableColumns.contains(entry.getKey()))
  4. .filter(entry -> !entry.getValue().isNull()) // strip nulls since meaningless in index join lookups
  5. .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
  6. .addAll(handleToNames(ImmutableList.copyOf(indexableColumns)))
  7. .addAll(handleToNames(ImmutableList.copyOf(fixedValues.keySet())))
  8. .build();
  9. if (!indexedData.getIndexedTable(tpchTableHandle.getTableName(), tpchTableHandle.getScaleFactor(), lookupColumnNames).isPresent()) {
  10. return Optional.empty();
  11. if (!tupleDomain.isNone()) {
  12. filteredTupleDomain = TupleDomain.withColumnDomains(Maps.filterKeys(tupleDomain.getDomains().get(), not(in(fixedValues.keySet()))));

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

  1. public List<Symbol> getOriginalNonDistinctAggregateArgs()
  2. {
  3. return aggregations.values().stream()
  4. .filter(aggregation -> !aggregation.getMask().isPresent())
  5. .map(Aggregation::getCall)
  6. .flatMap(function -> function.getArguments().stream())
  7. .distinct()
  8. .map(Symbol::from)
  9. .collect(Collectors.toList());
  10. }

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

  1. public static RowType anonymous(List<Type> types)
  2. {
  3. List<Field> fields = types.stream()
  4. .map(type -> new Field(Optional.empty(), type))
  5. .collect(Collectors.toList());
  6. return new RowType(makeSignature(fields), fields);
  7. }

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

  1. private static StorageDescriptor makeStorageDescriptor(String tableName, List<Column> columns, Storage storage)
  2. {
  3. if (storage.isSkewed()) {
  4. throw new IllegalArgumentException("Writing to skewed table/partition is not supported");
  5. }
  6. SerDeInfo serdeInfo = new SerDeInfo();
  7. serdeInfo.setName(tableName);
  8. serdeInfo.setSerializationLib(storage.getStorageFormat().getSerDeNullable());
  9. serdeInfo.setParameters(storage.getSerdeParameters());
  10. StorageDescriptor sd = new StorageDescriptor();
  11. sd.setLocation(emptyToNull(storage.getLocation()));
  12. sd.setCols(columns.stream()
  13. .map(ThriftMetastoreUtil::toMetastoreApiFieldSchema)
  14. .collect(toList()));
  15. sd.setSerdeInfo(serdeInfo);
  16. sd.setInputFormat(storage.getStorageFormat().getInputFormatNullable());
  17. sd.setOutputFormat(storage.getStorageFormat().getOutputFormatNullable());
  18. sd.setParameters(ImmutableMap.of());
  19. Optional<HiveBucketProperty> bucketProperty = storage.getBucketProperty();
  20. if (bucketProperty.isPresent()) {
  21. sd.setNumBuckets(bucketProperty.get().getBucketCount());
  22. sd.setBucketCols(bucketProperty.get().getBucketedBy());
  23. if (!bucketProperty.get().getSortedBy().isEmpty()) {
  24. sd.setSortCols(bucketProperty.get().getSortedBy().stream()
  25. .map(column -> new Order(column.getColumnName(), column.getOrder().getHiveOrder()))
  26. .collect(toList()));
  27. }
  28. }
  29. return sd;
  30. }

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

  1. private Map<TpchColumn<?>, List<Object>> getColumnValuesRestrictions(TpchTable<?> tpchTable, Constraint<ColumnHandle> constraint)
  2. {
  3. TupleDomain<ColumnHandle> constraintSummary = constraint.getSummary();
  4. if (constraintSummary.isAll()) {
  5. return emptyMap();
  6. }
  7. else if (constraintSummary.isNone()) {
  8. Set<TpchColumn<?>> columns = ImmutableSet.copyOf(tpchTable.getColumns());
  9. return asMap(columns, key -> emptyList());
  10. }
  11. else {
  12. Map<ColumnHandle, Domain> domains = constraintSummary.getDomains().get();
  13. Optional<Domain> orderStatusDomain = Optional.ofNullable(domains.get(toColumnHandle(ORDER_STATUS)));
  14. Optional<Map<TpchColumn<?>, List<Object>>> allowedColumnValues = orderStatusDomain.map(domain -> {
  15. List<Object> allowedValues = ORDER_STATUS_VALUES.stream()
  16. .filter(domain::includesNullableValue)
  17. .collect(toList());
  18. return avoidTrivialOrderStatusRestriction(allowedValues);
  19. });
  20. return allowedColumnValues.orElse(emptyMap());
  21. }
  22. }

代码示例来源:origin: apache/incubator-dubbo

  1. protected static Set<String> getSubProperties(Map<String, String> properties, String prefix) {
  2. return properties.keySet().stream().filter(k -> k.contains(prefix)).map(k -> {
  3. k = k.substring(prefix.length());
  4. return k.substring(0, k.indexOf("."));
  5. }).collect(Collectors.toSet());
  6. }

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

  1. /**
  2. * Extract all column constraints that require exactly one value or only null in their respective Domains.
  3. * Returns an empty Optional if the Domain is none.
  4. */
  5. public static <T> Optional<Map<T, NullableValue>> extractFixedValues(TupleDomain<T> tupleDomain)
  6. {
  7. if (!tupleDomain.getDomains().isPresent()) {
  8. return Optional.empty();
  9. }
  10. return Optional.of(tupleDomain.getDomains().get()
  11. .entrySet().stream()
  12. .filter(entry -> entry.getValue().isNullableSingleValue())
  13. .collect(toMap(Map.Entry::getKey, entry -> new NullableValue(entry.getValue().getType(), entry.getValue().getNullableSingleValue()))));
  14. }

相关文章