@Nonnull
public ImmutableSortedSet<ImmutableItem> toSortedSet(@Nonnull Comparator<? super ImmutableItem> comparator,
@Nullable final Iterable<? extends Item> iterable) {
if (iterable == null) {
return ImmutableSortedSet.of();
}
boolean needsCopy = false;
if (iterable instanceof ImmutableSortedSet &&
((ImmutableSortedSet)iterable).comparator().equals(comparator)) {
for (Item element: iterable) {
if (!isImmutable(element)) {
needsCopy = true;
break;
}
}
} else {
needsCopy = true;
}
if (!needsCopy) {
return (ImmutableSortedSet<ImmutableItem>)iterable;
}
final Iterator<? extends Item> iter = iterable.iterator();
return ImmutableSortedSet.copyOf(comparator, new Iterator<ImmutableItem>() {
@Override public boolean hasNext() { return iter.hasNext(); }
@Override public ImmutableItem next() { return makeImmutable(iter.next()); }
@Override public void remove() { iter.remove(); }
});
}
java类com.google.common.collect.ImmutableSortedSet的实例源码
ImmutableConverter.java 文件源码
项目:andbg
阅读 28
收藏 0
点赞 0
评论 0
SetGenerators.java 文件源码
项目:googles-monorepo-demo
阅读 23
收藏 0
点赞 0
评论 0
@Override
protected List<String> create(String[] elements) {
Comparator<String> comparator = createExplicitComparator(elements).reverse();
return ImmutableSortedSet.orderedBy(comparator)
.add(elements)
.build()
.descendingSet()
.asList();
}
ImmutableCollectors.java 文件源码
项目:helper
阅读 32
收藏 0
点赞 0
评论 0
public static <E> Collector<E, ?, ImmutableSortedSet<E>> toSortedSet(Comparator<? super E> comparator) {
return Collector.of(
() -> new ImmutableSortedSet.Builder<E>(comparator),
ImmutableSortedSet.Builder::add,
(l, r) -> l.addAll(r.build()),
ImmutableSortedSet.Builder::build
);
}
CollectionUtils.java 文件源码
项目:andbg
阅读 49
收藏 0
点赞 0
评论 0
@Nonnull
private static <T> SortedSet<? extends T> toSortedSet(@Nonnull Comparator<? super T> elementComparator,
@Nonnull Collection<? extends T> collection) {
if (collection instanceof SortedSet) {
SortedSet<? extends T> sortedSet = (SortedSet<? extends T>)collection;
Comparator<?> comparator = sortedSet.comparator();
if (comparator != null && comparator.equals(elementComparator)) {
return sortedSet;
}
}
return ImmutableSortedSet.copyOf(elementComparator, collection);
}
Enqueuer.java 文件源码
项目:r8
阅读 30
收藏 0
点赞 0
评论 0
private <T extends PresortedComparable<T>> SortedSet<T> toDescriptorSet(
Set<? extends KeyedDexItem<T>> set) {
ImmutableSortedSet.Builder<T> builder =
new ImmutableSortedSet.Builder<>(PresortedComparable::slowCompareTo);
for (KeyedDexItem<T> item : set) {
builder.add(item.getKey());
}
return builder.build();
}
Enqueuer.java 文件源码
项目:r8
阅读 25
收藏 0
点赞 0
评论 0
private static <T extends PresortedComparable<T>> ImmutableSortedSet<T> rewriteItems(
Set<T> original, BiFunction<T, DexEncodedMethod, T> rewrite) {
ImmutableSortedSet.Builder<T> builder =
new ImmutableSortedSet.Builder<>(PresortedComparable::slowCompare);
for (T item : original) {
builder.add(rewrite.apply(item, null));
}
return builder.build();
}
SingleFileQueryAssessmentsLoader.java 文件源码
项目:tac-kbp-eal
阅读 23
收藏 0
点赞 0
评论 0
public final CorpusQueryAssessments loadFrom(final CharSource source) throws IOException {
final List<String> lines = source.readLines();
final List<QueryResponse2016> queries = Lists.newArrayList();
final Map<QueryResponse2016, String> metadata = Maps.newHashMap();
final ImmutableMultimap.Builder<QueryResponse2016, Symbol> responsesToSystems =
ImmutableMultimap.builder();
final Map<QueryResponse2016, QueryAssessment2016> assessments = Maps.newHashMap();
Optional<String> lastMetadata = Optional.absent();
for (final String line : lines) {
if (line.startsWith("#")) {
lastMetadata = Optional.of(line.trim().substring(1));
} else {
final String[] parts = line.trim().split("\t");
checkArgument(parts.length == 5, "expected five columns, but got " + parts.length);
final Symbol queryID = Symbol.from(parts[0]);
final Symbol docID = Symbol.from(parts[1]);
final String[] systemIDs = parts[2].split(",");
final ImmutableSortedSet<CharOffsetSpan> spans = extractPJSpans(parts[3]);
final QueryAssessment2016 assessment = QueryAssessment2016.valueOf(parts[4]);
final QueryResponse2016 query =
QueryResponse2016.builder().queryID(queryID).docID(docID)
.addAllPredicateJustifications(spans).build();
queries.add(query);
for(final String systemID: systemIDs) {
responsesToSystems.put(query, Symbol.from(systemID));
}
if (!assessment.equals(QueryAssessment2016.UNASSESSED)) {
assessments.put(query, assessment);
}
if (lastMetadata.isPresent()) {
metadata.put(query, lastMetadata.get());
lastMetadata = Optional.absent();
}
}
}
return CorpusQueryAssessments.builder().addAllQueryReponses(queries).assessments(assessments)
.queryResponsesToSystemIDs(responsesToSystems.build())
.metadata(metadata).build();
}
SingleFileQueryAssessmentsLoader.java 文件源码
项目:tac-kbp-eal
阅读 25
收藏 0
点赞 0
评论 0
private static ImmutableSortedSet<CharOffsetSpan> extractPJSpans(final String part) {
final ImmutableSortedSet.Builder<CharOffsetSpan> spans = ImmutableSortedSet.naturalOrder();
for (final String spanString : commaSplitter.split(part.trim())) {
final List<String> spanParts = ImmutableList.copyOf(dashSplitter.split(spanString));
checkState(spanParts.size() == 2,
"Expected two components to the span, but got " + spanParts.size());
final int start = Integer.parseInt(spanParts.get(0));
final int end = Integer.parseInt(spanParts.get(1));
spans.add(CharOffsetSpan.fromOffsetsOnly(start, end));
}
return spans.build();
}
PrecomputingPairwiseResnikSimilarity.java 文件源码
项目:ontolib
阅读 22
收藏 0
点赞 0
评论 0
PrecomputedScores(Collection<TermId> termIds) {
termIdCount = termIds.size();
data = new float[termIdCount * termIdCount];
termIdToIdx = new HashMap<>(termIdCount);
int i = 0;
for (TermId termId : ImmutableSortedSet.copyOf(termIds)) {
termIdToIdx.put(termId, i++);
}
}
TermIdsTest.java 文件源码
项目:ontolib
阅读 24
收藏 0
点赞 0
评论 0
@Test
public void test() {
Set<TermId> inputIds = Sets.newHashSet(id1);
Set<TermId> outputIds =
ImmutableSortedSet.copyOf(TermIds.augmentWithAncestors(ontology, inputIds, true));
assertEquals(
"[ImmutableTermId [prefix=ImmutableTermPrefix [value=HP], id=0000001], ImmutableTermId [prefix=ImmutableTermPrefix [value=HP], id=0000002], ImmutableTermId [prefix=ImmutableTermPrefix [value=HP], id=0000003], ImmutableTermId [prefix=ImmutableTermPrefix [value=HP], id=0000004], ImmutableTermId [prefix=ImmutableTermPrefix [value=HP], id=0000005]]",
outputIds.toString());
}