java.util.stream.Stream#distinct ( )源码实例Demo

下面列出了java.util.stream.Stream#distinct ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: extract   文件: MetadataTransformer.java
private void transform(final String normalisedName, String[] values, final ValueArrayConsumer consumer) throws
		IOException {
	Stream<String> stream = Arrays.stream(values);

	// Remove empty values.
	stream = stream.filter(value -> null != value && !value.isEmpty());

	// Remove duplicates.
	// Normalised to lowercase so that "GENERATOR" matches "Generator" (these inconsistent names can come from
	// HTML documents).
	if (values.length > 1 && deduplicateProperties.contains(fieldMap.get(normalisedName)
			.toLowerCase(Locale.ENGLISH))) {
		stream = stream.distinct();
	}

	values = stream.toArray(String[]::new);
	if (values.length > 0) {
		consumer.accept(normalisedName, values);
	}
}
 
源代码2 项目: Bytecoder   文件: ModulePatcher.java
@Override
public Stream<String> list() throws IOException {
    Stream<String> s = delegate().list();
    for (ResourceFinder finder : finders) {
        s = Stream.concat(s, finder.list());
    }
    return s.distinct();
}
 
源代码3 项目: openjdk-jdk9   文件: ModulePatcher.java
@Override
public Stream<String> list() throws IOException {
    Stream<String> s = delegate().list();
    for (ResourceFinder finder : finders) {
        s = Stream.concat(s, finder.list());
    }
    return s.distinct();
}
 
/**
 * Creates map entries with the given keys. Uses values
 * from {@linkplain TestStorageItems#values} in a round-robin fashion.
 */
List<MapEntry<HashCode, String>> createMapEntries(Stream<HashCode> proofKeys) {
  Stream<HashCode> keys = proofKeys.distinct();
  Stream<String> roundRobinValues = IntStream.range(0, Integer.MAX_VALUE)
      .mapToObj(i -> values.get(i % values.size()));
  return Streams.zip(keys, roundRobinValues, MapEntry::valueOf)
      .collect(toList());
}
 
源代码5 项目: rdf4j   文件: OrderIterator.java
private Stream<BindingSet> sort(Collection<BindingSet> collection) {
	BindingSet[] array = collection.toArray(new BindingSet[collection.size()]);
	Arrays.parallelSort(array, comparator);
	Stream<BindingSet> stream = Stream.of(array);
	if (distinct) {
		stream = stream.distinct();
	}
	if (limit < Integer.MAX_VALUE) {
		stream = stream.limit(limit);
	}
	return stream;
}
 
源代码6 项目: demo-java-x   文件: Echo.java
private static Stream<String> modifyStream(String arg, Stream<String> input) {
	switch (arg){
		case "--sort": return input.sorted();
		case "--unique": return input.distinct();
		case "--reverse": return reverse(input);
		default: {
			System.out.println("Unknown argument '" + arg + "'.");
			return input;
		}
	}
}
 
源代码7 项目: vertexium   文件: UnionExecutionStep.java
@Override
public VertexiumCypherResult execute(VertexiumCypherQueryContext ctx, VertexiumCypherResult source) {
    LinkedHashSet<String> columnNames = new LinkedHashSet<>();
    Stream<CypherResultRow> rows = Stream.of();
    for (ExecutionStep step : getChildSteps().collect(Collectors.toList())) {
        VertexiumCypherResult result = step.execute(ctx, null);
        columnNames.addAll(result.getColumnNames());
        rows = Stream.concat(rows, result);
    }
    if (!all) {
        rows = rows.distinct();
    }
    return new VertexiumCypherResult(rows, columnNames);
}
 
源代码8 项目: batfish   文件: WorkMgr.java
@VisibleForTesting
@Nonnull
TableAnswerElement processAnswerTable(TableAnswerElement rawTable, AnswerRowsOptions options) {
  Map<String, ColumnMetadata> rawColumnMap = rawTable.getMetadata().toColumnMap();
  List<Row> filteredRows =
      rawTable.getRowsList().stream()
          .filter(row -> options.getFilters().stream().allMatch(filter -> filter.matches(row)))
          .collect(ImmutableList.toImmutableList());

  Stream<Row> rowStream = filteredRows.stream();
  if (!options.getSortOrder().isEmpty()) {
    // sort using specified sort order
    rowStream = rowStream.sorted(buildComparator(rawColumnMap, options.getSortOrder()));
  }
  TableAnswerElement table;
  if (options.getColumns().isEmpty()) {
    table = new TableAnswerElement(rawTable.getMetadata());
  } else {
    // project to desired columns
    rowStream =
        rowStream.map(rawRow -> Row.builder().putAll(rawRow, options.getColumns()).build());
    Map<String, ColumnMetadata> columnMap = new LinkedHashMap<>(rawColumnMap);
    columnMap.keySet().retainAll(options.getColumns());
    List<ColumnMetadata> columnMetadata =
        columnMap.values().stream().collect(ImmutableList.toImmutableList());
    table =
        new TableAnswerElement(
            new TableMetadata(columnMetadata, rawTable.getMetadata().getTextDesc()));
  }
  if (options.getUniqueRows()) {
    // uniquify if desired
    rowStream = rowStream.distinct();
  }
  // offset, truncate, and add to table
  rowStream.skip(options.getRowOffset()).limit(options.getMaxRows()).forEach(table::addRow);
  table.setSummary(rawTable.getSummary() != null ? rawTable.getSummary() : new AnswerSummary());
  table.getSummary().setNumResults(filteredRows.size());
  return table;
}
 
源代码9 项目: unix-stream   文件: Uniq.java
@Override
public Stream<T> apply(Stream<T> input) {
    return input.distinct();
}
 
源代码10 项目: hortonmachine   文件: StreamUtils.java
public static <T> Stream<T> distinct( Stream<T> stream ) {
    return stream.distinct();
}