多值、多key集合 Multimap

多值数据结构

有的时候需要一key多值的数据结构,如 Map<K, List<V>>或者Map<K, Set<V>>
guava 库 为  Multimap

并发 Multimap

 protected final Multimap<String, Metric> metricMap = Multimaps
            .synchronizedListMultimap(ArrayListMultimap.create());

多key数据结构 Map<key100, Map<key200, Object>> gauga:Table

Table<Integer, Integer, String> table = HashBasedTable.create();
       
table.put(1, 1, "11");
table.get(1,1);

转载于:https://my.oschina.net/itnms/blog/465753

在Java中,`Multimap`是一种特殊类型的映射,可以将单个键映射到多个值上。`Multimap`不是Java标准库的一部分,而是由Google的Guava库提供的一种数据结构。在使用`Multimap`时,如果你想取所有映射中第一个键,你需要首先确定你正在使用的`Multimap`的具体实现,因为不同的实现可能有不同的方法来获取键。 举个例子,如果你使用的是`ArrayListMultimap`或者`HashMultimap`,你可以通过`keySet()`方法获取所有的键集合,然后使用迭代器或者简单的循环来获取第一个键。但如果你想要一个更直接的方式来获取第一个键,你可能需要考虑使用`ListMultimap`接口,然后通过`entries()`方法将`Multimap`的条目集转换为列表,进而获取第一个条目并返回其键。 这里是一个简单的例子代码: ```java // 假设multimap已经被初始化并且填充了数据 ListMultimap<Integer, String> multimap = ArrayListMultimap.create(); // 添加一些数据到multimapmultimap.put(1, "Value1"); multimap.put(1, "Value2"); multimap.put(2, "Value3"); // 获取Multimap的条目集,转换为List List<Map.Entry<Integer, String>> entries = new ArrayList<>(multimap.entries()); // 获取第一个条目(如果有数据的话) if (!entries.isEmpty()) { Map.Entry<Integer, String> firstEntry = entries.get(0); Integer firstKey = firstEntry.getKey(); System.out.println("第一个键是: " + firstKey); } else { System.out.println("Multimap中没有键值对"); } ``` 需要注意的是,在处理`Multimap`时,如果一个键可以对应多个值,通常我们更关注的是所有的值集合,而不仅仅是第一个键。如果使用场景确实需要频繁获取第一个键,这可能意味着你的数据结构设计需要重新考虑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值