热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

com.google.common.collect.MultimapBuilder类的使用及代码示例

本文整理了Java中com.google.common.collect.MultimapBuilder类的一些代码示例,展示了MultimapBuilder

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

MultimapBuilder介绍

[英]A builder for a multimap implementation that allows customization of the backing map and value collection implementations used in a particular multimap.

This can be used to easily configure multimap data structure implementations not provided explicitly in com.google.common.collect, for example:

ListMultimap treeListMultimap =

MultimapBuilder instances are immutable. Invoking a configuration method has no effect on the receiving instance; you must store and use the new builder instance it returns instead.

The generated multimaps are serializable if the key and value types are serializable, unless stated otherwise in one of the configuration methods.
[中]多映射实现的生成器,允许自定义特定多映射中使用的支持映射和值集合实现。
这可用于轻松配置com中未明确提供的多映射数据结构实现。谷歌。常见的收集,例如:

ListMultimap treeListMultimap =

MultimapBuilder实例是不可变的。调用配置方法对接收实例没有影响;您必须存储并使用它返回的新生成器实例。
如果键和值类型是可序列化的,则生成的多重映射是可序列化的,除非在其中一种配置方法中另有说明。

代码示例

代码示例来源:origin: google/guava

public void testGenerics_gwtCompatible() {
ListMultimap a =
MultimapBuilder.hashKeys().arrayListValues().build();
SortedSetMultimap b =
MultimapBuilder.linkedHashKeys().treeSetValues().build();
SetMultimap c =
MultimapBuilder.treeKeys(String.CASE_INSENSITIVE_ORDER)
.hashSetValues()
.build();
}

代码示例来源:origin: google/guava

/**
* Returns a {@code Multimap} with the specified implementation, initialized with the entries of
* {@code multimap}.
*/
public Multimap build(
Multimap multimap) {
Multimap result = build();
result.putAll(multimap);
return result;
}

代码示例来源:origin: greenaddress/GreenBits

@Override
protected Multimap getStateTransitions() {
Multimap result = MultimapBuilder.enumKeys(State.class).arrayListValues().build();
result.put(State.UNINITIALISED, State.NEW);
result.put(State.UNINITIALISED, State.READY);
result.put(State.NEW, State.SAVE_STATE_IN_WALLET);
result.put(State.SAVE_STATE_IN_WALLET, State.PROVIDE_MULTISIG_CONTRACT_TO_SERVER);
result.put(State.PROVIDE_MULTISIG_CONTRACT_TO_SERVER, State.READY);
result.put(State.READY, State.EXPIRED);
result.put(State.READY, State.CLOSED);
return result;
}

代码示例来源:origin: dstl/baleen

private Multimap collateMentionsIntoEntities(
final Map mentions) {
final Multimap map =
MultimapBuilder.hashKeys().arrayListValues().build();
mentions.values().forEach(m -> map.put(m.getEntityId(), m));
return map;
}

代码示例来源:origin: Swagger2Markup/swagger2markup

operatiOnsGroupedByTag= LinkedHashMultimap.create();
} else {
operatiOnsGroupedByTag= MultimapBuilder.linkedHashKeys().treeSetValues(operationOrdering).build();
logger.debug("Added path operation '{}' to tag '{}'", operation, tag);
operationsGroupedByTag.put(tag, operation);

代码示例来源:origin: dstl/baleen

private void addMetadata(JCas jCas, Document doc) {
Multimap meta = MultimapBuilder.linkedHashKeys().linkedListValues().build();
for (Metadata metadata : JCasUtil.select(jCas, Metadata.class)) {
String key = metadata.getKey();
if (key.contains(".")) { // Field names can't contain a "." in Mongo, so replace with a _
key = key.replaceAll("\\.", "_");
}
meta.put(key, metadata.getValue());
}
doc.append(FIELD_METADATA, meta.asMap());
}

代码示例来源:origin: com.torodb.torod.backends/common

.enumKeys(ScalarType.class)
.hashSetValues()
.build();
byTypeValues.put(value.getType(), value);
if (byTypeValues.isEmpty()) {
result = Collections.emptyList();
} else {

代码示例来源:origin: imperial-crystalline-recursion/abtestgen

private void generateViewTests(Set annotations,
RoundEnvironment roundEnv) {
Multimap viewTestMap =
MultimapBuilder.linkedHashKeys().arrayListValues().build();
getTextTests(roundEnv, viewTestMap);
getResTests(roundEnv, viewTestMap);
Set strings = viewTestMap.keys().elementSet();
String[] keys = strings.toArray(new String[strings.size()]);
for (String key : keys) {
processingEnv.getMessager().printMessage(Diagnostic.Kind.WARNING, key);
createTest(key, viewTestMap.get(key));
}
}

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

idxConstraintRangePairs.asMap().forEach((key, value) -> executor.submit(() -> {
long cardinality = getColumnCardinality(schema, table, auths, key.getFamily(), key.getQualifier(), value);
LOG.debug("Cardinality for column %s is %s", key.getName(), cardinality);
ListMultimap cardinalityToCOnstraints= MultimapBuilder.treeKeys().arrayListValues().build();
try {
boolean earlyReturn = false;
int numTasks = idxConstraintRangePairs.asMap().entrySet().size();
do {

代码示例来源:origin: google/guava

public void testFlatteningToMultimap() {
Collector> collector =
Multimaps.flatteningToMultimap(
str -> str.charAt(0),
str -> str.substring(1).chars().mapToObj(c -> (char) c),
MultimapBuilder.linkedHashKeys().arrayListValues()::build);
BiPredicate, Multimap> equivalence =
Equivalence.equals()
.onResultOf((Multimap mm) -> ImmutableList.copyOf(mm.asMap().entrySet()))
.and(Equivalence.equals());
ListMultimap empty =
MultimapBuilder.linkedHashKeys().arrayListValues().build();
ListMultimap filled =
MultimapBuilder.linkedHashKeys().arrayListValues().build();
filled.putAll('b', Arrays.asList('a', 'n', 'a', 'n', 'a'));
filled.putAll('a', Arrays.asList('p', 'p', 'l', 'e'));
filled.putAll('c', Arrays.asList('a', 'r', 'r', 'o', 't'));
filled.putAll('a', Arrays.asList('s', 'p', 'a', 'r', 'a', 'g', 'u', 's'));
filled.putAll('c', Arrays.asList('h', 'e', 'r', 'r', 'y'));
CollectorTester.of(collector, equivalence)
.expectCollects(empty)
.expectCollects(filled, "banana", "apple", "carrot", "asparagus", "cherry");
}

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

synchronized void updateCache() {
Multimap newClassNameLocatiOns= HashMultimap.create();
for (ClassLoader loader : getKnownClassLoaders()) {
updateCache(loader, newClassNameLocations);
}
updateCacheWithClasspathClasses(newClassNameLocations);
updateCacheWithBootstrapClasses(newClassNameLocations);
if (!newClassNameLocations.isEmpty()) {
// multimap that sorts keys and de-dups values while maintains value ordering
SetMultimap newMap =
MultimapBuilder.treeKeys().linkedHashSetValues().build();
newMap.putAll(classNameLocations);
newMap.putAll(newClassNameLocations);
classNameLocatiOns= ImmutableMultimap.copyOf(newMap);
}
}

代码示例来源:origin: google/guava

/** Uses a hash table to map keys to value collections. */
public static MultimapBuilderWithKeys hashKeys() {
return hashKeys(DEFAULT_EXPECTED_KEYS);
}

代码示例来源:origin: google/guava

@GwtIncompatible // serialization
public void testSerialization() throws Exception {
for (MultimapBuilderWithKeys builderWithKeys :
ImmutableList.of(
MultimapBuilder.hashKeys(),
MultimapBuilder.linkedHashKeys(),
MultimapBuilder.treeKeys(),
MultimapBuilder.enumKeys(RoundingMode.class))) {
for (MultimapBuilder builder :
ImmutableList.of(
builderWithKeys.arrayListValues(),
builderWithKeys.linkedListValues(),
builderWithKeys.hashSetValues(),
builderWithKeys.linkedHashSetValues(),
builderWithKeys.treeSetValues(),
builderWithKeys.enumSetValues(RoundingMode.class))) {
/*
* Temporarily inlining SerializableTester here for obscure internal reasons.
*/
reserializeAndAssert(builder.build());
}
}
}

代码示例来源:origin: google/guava

/**
* Uses a hash table to map keys to value collections.
*
*

The collections returned by {@link Multimap#keySet()}, {@link Multimap#keys()}, and {@link
* Multimap#asMap()} will iterate through the keys in the order that they were first added to the
* multimap, save that if all values associated with a key are removed and then the key is added
* back into the multimap, that key will come last in the key iteration order.
*/
public static MultimapBuilderWithKeys linkedHashKeys() {
return linkedHashKeys(DEFAULT_EXPECTED_KEYS);
}

代码示例来源:origin: google/guava

/**
* Uses a naturally-ordered {@link TreeMap} to map keys to value collections.
*
*

The collections returned by {@link Multimap#keySet()}, {@link Multimap#keys()}, and {@link
* Multimap#asMap()} will iterate through the keys in sorted order.
*
*

For all multimaps generated by the resulting builder, the {@link Multimap#keySet()} can be
* safely cast to a {@link java.util.SortedSet}, and the {@link Multimap#asMap()} can safely be
* cast to a {@link java.util.SortedMap}.
*/
@SuppressWarnings("rawtypes")
public static MultimapBuilderWithKeys treeKeys() {
return treeKeys(Ordering.natural());
}

代码示例来源:origin: com.atlassian.oai/swagger-request-validator-core

static Multimap multimapBuilder(final boolean caseSensitive) {
return caseSensitive ? MultimapBuilder.hashKeys().arrayListValues().build() :
MultimapBuilder.treeKeys(String.CASE_INSENSITIVE_ORDER).arrayListValues().build();
}

代码示例来源:origin: google/guava

@Override
public ListMultimap build(
Multimap multimap) {
return (ListMultimap) super.build(multimap);
}
}

代码示例来源:origin: HashEngineering/dashj

@Override
protected Multimap getStateTransitions() {
Multimap result = MultimapBuilder.enumKeys(State.class).arrayListValues().build();
result.put(State.UNINITIALISED, State.NEW);
result.put(State.UNINITIALISED, State.READY);
result.put(State.NEW, State.SAVE_STATE_IN_WALLET);
result.put(State.SAVE_STATE_IN_WALLET, State.PROVIDE_MULTISIG_CONTRACT_TO_SERVER);
result.put(State.PROVIDE_MULTISIG_CONTRACT_TO_SERVER, State.READY);
result.put(State.READY, State.EXPIRED);
result.put(State.READY, State.CLOSED);
return result;
}

代码示例来源:origin: org.apache.brooklyn/brooklyn-core

@Test
public void testSerializeStringKey() throws Exception {
Multimap map = MultimapBuilder.hashKeys().arrayListValues().build();
map.put("a", 1);
map.put("a", 2);
map.put("a", 3);
String json = mapper.writer().writeValueAsString(map);
assertEquals(json, "{\"a\":[1,2,3]}");
}

代码示例来源:origin: google/j2objc

/** Uses a hash table to map keys to value collections. */
public static MultimapBuilderWithKeys hashKeys() {
return hashKeys(DEFAULT_EXPECTED_KEYS);
}

推荐阅读
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 标题: ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
author-avatar
暗恋具体哦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有