大佬们觉得这俩数据结构有什么优劣吗?还是无所谓?

2021-01-05 17:53:56 +08:00
 chaleaoch
[
    {
        "key_name": "value_name1",
        "data": {...}
    },
    {
        "key_name": "value_name2",
        "data": {...}
    }
]

{
    "value_name1":{...},
    "value_name2":{...}
}
2078 次点击
所在节点    程序员
19 条回复
zachlhb
2021-01-05 17:56:00 +08:00
第二种取值方便
wutiantong
2021-01-05 17:56:05 +08:00
区别是有序和无序
ayase252
2021-01-05 17:57:51 +08:00
本质上数列和哈希表的区别嘛

看使用场景了
0ZXYDDu796nVCFxq
2021-01-05 17:59:41 +08:00
看你需要怎么读取数据,如果你需要访问 value_name1,结构 1 的时间复杂度是 O(n),结构 2 是 O(1)
如果都是遍历访问,两者差不多一样
securityCoding
2021-01-05 18:02:39 +08:00
1 , 2 这种太野路子了不好校验
kerr92
2021-01-05 18:07:40 +08:00
每过段时间就会出现的那种帖子……可以看看历史

https://www.v2ex.com/t/629474

https://www.v2ex.com/t/725418

https://www.v2ex.com/t/730623
azcvcza
2021-01-05 18:08:17 +08:00
第一个如果是空数组的时候,对数组使用的 map,filter 都还能用;第二个如果是空,后台给个 null 回来就有点恶心人
Jackeriss
2021-01-05 18:09:55 +08:00
老生常谈,根据需求决定
javapythongo
2021-01-05 18:10:33 +08:00
第二种是你预先知道有哪些 key 且不改变,不然的话就得循环对象,就不如第一种循环数组方便了
kuro1
2021-01-05 18:15:07 +08:00
起码看见 5 次了
0ZXYDDu796nVCFxq
2021-01-05 18:16:22 +08:00
```
{"key_names": ["value_name1", "value_name2"],
"value_name1": {...},
"value_name2": {...}
}
```
皆大欢喜
taogen
2021-01-05 19:27:50 +08:00
第一种是数组
第二种对象
哪种方便用哪种咯,又不是不能跑。 🐶
fengpan567
2021-01-05 19:29:34 +08:00
又来了
chaleaoch
2021-01-05 19:45:21 +08:00
@kerr92 可以可以. 谢谢.
chaleaoch
2021-01-05 19:47:17 +08:00
@javapythongo 这回复和 id 不匹配啊. 至少 python 还有一个 _dict.get() 可以用啊. go 也有 map 可以用. 为啥一定要循环啊.
mxtob
2021-01-05 20:01:08 +08:00
@kerr92 点进帖子里面看 又发现里面也有人说类似重复帖子出现。有点无限套娃了,哈哈
javapythongo
2021-01-06 09:43:00 +08:00
@chaleaoch 我说了你要知道 key 的情况下就用第二种,比如配置相关的,不知道 key 你怎么直接 get
chaleaoch
2021-01-06 13:13:09 +08:00
@javapythongo 我的理解 key 代表某种意义, 譬如 可以用来做 id

知道 key 的情况是只 知道所有的 key 都是 多少吗?
我不需要知道


for id, value in json_dct
chaleaoch
2021-01-06 13:13:58 +08:00
@chaleaoch 而且 _dict.get('some_key'm 'default_value')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX