我去,实验了一下 Java 发现 map 超级麻烦

2018-12-18 23:33:12 +08:00
 cc959798

哈希表是我们常见的一种数据结构,在 java 中实现的有些太难用了,不支持[]索引,使用起来好繁琐

3740 次点击
所在节点    问与答
45 条回复
watzds
2018-12-19 00:16:39 +08:00
写代码又不是拼打字速度快,.get()能阻碍你什么?
whwq2012
2018-12-19 00:30:23 +08:00
用方法实现才更有面向对象的感觉吧
Lonely
2018-12-19 00:30:43 +08:00
像你这么矫情的低级黑真是头次见
changnet
2018-12-19 00:34:58 +08:00
不懂 java,不能像 C++一样写个 operator []就有了么
lhx2008
2018-12-19 00:44:51 +08:00
java 啥都特别麻烦,建议楼主使用最好的语言 php,和最好的两种语言 python,他们的 map 的 key 还可以支持多类型,还可以用[]优雅的调用。像 java 的 key 和 value 都只能固定类型,垃圾!
NeinChn
2018-12-19 00:47:55 +08:00
Map 有最普通的 HashMap,还有有序的 TreeMap,有线程安全的 ConcurrentHashMap,还有基于双向链表做的 LinkedHashMap,可以用来做 LRU...
基本上最基础的需求都能用内置库来满足...
你找个其他语言看看有没有能这么全的....
哦不对,Python 根本没有线程安全的问题....GIL 最棒了.....
sagaxu
2018-12-19 01:01:50 +08:00
JVM 上又不是只有 Java,你还有很多选择,Kotlin,Scala,Groovy 的 map 都不需要写.get()
qiyuey
2018-12-19 01:03:45 +08:00
人生苦短,欢迎使用 Kotlin
kera0a
2018-12-19 01:04:58 +08:00
其他语言怎样关 java 的 map 啥事,阴阳怪气的。这个用起来稍微麻烦就稍微麻烦一点呗,java 也没有必要在这个方面争个第一
eslizn
2018-12-19 01:15:34 +08:00
@changnet 貌似 java 不支持运算符重载,几个主流语言的语言也就 c++的运算符重载支持的好一点
lance7in
2018-12-19 01:19:22 +08:00
你需要 guava
JRight
2018-12-19 01:54:40 +08:00
语言特性都是随着应用场景和人的需求演化的,可能以后的某天你会觉得非常有用
Trim21
2018-12-19 02:12:48 +08:00
@NeinChn #5 即使有 GIL, 也不代表没有线程安全的问题, 是不是觉得黑点更大了
lraining
2018-12-19 05:13:29 +08:00
js 的 map 也难用,不能[]索引,要用 get,set,遍历要写[key,value]
jiangnanyanyu
2018-12-19 07:27:01 +08:00
又来水一贴,有什么意义
yanaraika
2018-12-19 07:41:49 +08:00
为啥还有人觉得.get 就好……这个不是 java 著名又臭又长的点吗


推荐 kotlin
dengtongcai
2018-12-19 08:24:03 +08:00
确实有这地方过于麻烦,但是…
66beta
2018-12-19 08:51:25 +08:00
不懂 Java,但是看到 Java9 - 10 越来越靠近 PHP 和 Python 了,说不定 Java11 就能满足楼主了
xomix
2018-12-19 09:01:36 +08:00
@66beta 那不行,那会儿要收费了
liuxey
2018-12-19 09:13:34 +08:00
如果一个.get()就能称为超级麻烦,那么楼主继续用 Java 可能会引起不适,赶紧收手。

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

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

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

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

© 2021 V2EX