java里map底层是通过啥实现的?队列和键值有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里map底层是通过啥实现的?队列和键值有啥区别相关的知识,希望对你有一定的参考价值。

java里map底层的数据结构是通过什么实现的?队列和键值有什么区别,

它的实现原理有些类似于二维数组,但是新的HashMap集合,是采用异步方式来实现的,它的效率较高!老的TableMap是同步实现的的,所以现在不推荐用这个,有时间可以看看底层代码,一看就明白了,很简单的 参考技术A 我感觉你要了解的是java集合框架

队列是一种特殊的线性表,通俗一点就是把一组数据组织在一起,常规的队列实现方案就是数组实现ArrayList和链式实现LinkedList,那么他们都实现自List,他们都可以存储不同的数据并且可以通过遍历逐条进行打印

而Map是键值方式的存储集合,比如目前公司的人员,都可以通过邮箱(唯 一的)来确定到一个具体的人,那这个邮箱相当于key,具体的人员就是值

具体底层如何实现的,先明白原理再说吧

与 Bigtable 相比,键值存储有啥好处?

【中文标题】与 Bigtable 相比,键值存储有啥好处?【英文标题】:What is the benefit of a Key-Value Store over Bigtable?与 Bigtable 相比,键值存储有什么好处? 【发布时间】:2012-12-13 10:20:49 【问题描述】:

在 Bigtable 上使用专用键值存储有什么意义?我对 Bigtable 的理解是,它是使用基于键值的 SSTables 实现的。鉴于此,通过丢弃 Bigtable 公开的 api 并保持最小的 put and get api,专用键值存储比 Bigtable 获得了哪些技术实现优势。

【问题讨论】:

【参考方案1】:

我认为最大的区别在于键空间是否是顺序的。其他功能都可以在这两种方法之上实现。

使用非顺序键空间,您可以更轻松地进行负载平衡,而无需处理区域 - 因为您不需要顺序访问键,您只需使用哈希码即可查看哪个集群节点应保留哪些值。

当然,API 的简单性也不容忽视。

【讨论】:

【参考方案2】:

(*) 我不确定你想到的是哪个key-value 存储空间,请允许我猜猜。

可以在此处找到功能比较:http://vschart.com/compare/dynamo-db/vs/bigtable

当您向下滚动时,您会看到众所周知的魔鬼的详细信息,例如完整性模型不同。

【讨论】:

以上是关于java里map底层是通过啥实现的?队列和键值有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

java中的队列有哪些,有啥区别

List,Map,Set三个接口存取元素时,各有啥特点?

List,Map,Set三个接口存取元素时,各有啥特点?

java中hashset和hashmap有啥特点?

java中Map类有啥作用,具体怎么用呢

数组,list,map,set各有啥优缺点;