加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Java中是否存在这样的数据类型?

发布时间:2020-12-15 04:57:05 所属栏目:Java 来源:网络整理
导读:我在redis中找到了这个,并试图看看 Java中是否有类似的东西.说我有以下数据: 3:13:23:34:1 正如您所看到的那样,非数据点本身是唯一的,但组合是唯一的. redis中有一个命令: sadd 3 1 2sadd 3 3sadd 4 1 这会给我一个像这样的东西: 3 - 1,2,34 - 1 通过做一
我在redis中找到了这个,并试图看看 Java中是否有类似的东西.说我有以下数据:

3:1
3:2
3:3
4:1

正如您所看到的那样,非数据点本身是唯一的,但组合是唯一的. redis中有一个命令:

sadd 3 1 2
sadd 3 3
sadd 4 1

这会给我一个像这样的东西:

3 -> 1,2,3
4 -> 1

通过做一些像smembers 3(这将返回3的所有内容)或者玷污3 2(如果子值存在,这将返回).

我想知道Java中最接近这个功能的是什么?

解决方法

Guava MultiMap界面就是这样做的.请注意,由特定实现决定是否允许重复< K,V>对.这听起来像你在K,V对总是独一无二的.如果是这样,看看 HashMultimap班.

但是,如果你想自己滚动,你可能正在寻找MapSet的组合:Map< Integer,Set< Integer>>

向地图添加(键,值)元素时:

>首先检查钥匙是否在那里.如果没有,您需要添加一个空Set< Integer>.
>然后,执行map.get(key).put(value);

如果要使用特定键检索所有元素:

>执行map.get(key)并迭代结果

当您想要查看特定键/值对是否在那里时:

> do if(map.containsKey(key)&& map.get(key).contains(value))

为了额外的功劳,您可以在包装器中实现所有这些功能.来自番石榴的ForwardingMap可能是一个很好的起点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读