首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

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

  •  
  •   cc959798 · 353 天前 · 2975 次点击
    这是一个创建于 353 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  353 天前
    java 的语法啰嗦是公认,不管黑不黑都是事实吧

    最重要的提能力和水平什么鬼,被资本家剥削都病态了吧,一个语言语法的问题和一个个体什么关系,我水平高了 java 语法就简洁了?就这逻辑水平也一般般吧
    45 回复  |  直到 2018-12-24 17:34:26 +08:00
        1
    watzds   353 天前 via Android
    写代码又不是拼打字速度快,.get()能阻碍你什么?
        2
    whwq2012   353 天前 via Android
    用方法实现才更有面向对象的感觉吧
        3
    Lonely   353 天前   ♥ 4
    像你这么矫情的低级黑真是头次见
        4
    changnet   353 天前 via Android
    不懂 java,不能像 C++一样写个 operator []就有了么
        5
    lhx2008   353 天前 via Android   ♥ 1
    java 啥都特别麻烦,建议楼主使用最好的语言 php,和最好的两种语言 python,他们的 map 的 key 还可以支持多类型,还可以用[]优雅的调用。像 java 的 key 和 value 都只能固定类型,垃圾!
        6
    NeinChn   353 天前   ♥ 4
    Map 有最普通的 HashMap,还有有序的 TreeMap,有线程安全的 ConcurrentHashMap,还有基于双向链表做的 LinkedHashMap,可以用来做 LRU...
    基本上最基础的需求都能用内置库来满足...
    你找个其他语言看看有没有能这么全的....
    哦不对,Python 根本没有线程安全的问题....GIL 最棒了.....
        7
    sagaxu   353 天前 via Android
    JVM 上又不是只有 Java,你还有很多选择,Kotlin,Scala,Groovy 的 map 都不需要写.get()
        8
    qiyuey   353 天前 via Android
    人生苦短,欢迎使用 Kotlin
        9
    kera0a   353 天前 via iPhone   ♥ 1
    其他语言怎样关 java 的 map 啥事,阴阳怪气的。这个用起来稍微麻烦就稍微麻烦一点呗,java 也没有必要在这个方面争个第一
        10
    eslizn   353 天前
    @changnet 貌似 java 不支持运算符重载,几个主流语言的语言也就 c++的运算符重载支持的好一点
        11
    lance7in   353 天前
    你需要 guava
        12
    JRight   353 天前
    语言特性都是随着应用场景和人的需求演化的,可能以后的某天你会觉得非常有用
        13
    Trim21   353 天前
    @NeinChn #5 即使有 GIL, 也不代表没有线程安全的问题, 是不是觉得黑点更大了
        14
    lraining   353 天前 via Android
    js 的 map 也难用,不能[]索引,要用 get,set,遍历要写[key,value]
        15
    jiangnanyanyu   353 天前 via Android
    又来水一贴,有什么意义
        16
    yanaraika   353 天前   ♥ 4
    为啥还有人觉得.get 就好……这个不是 java 著名又臭又长的点吗


    推荐 kotlin
        17
    dengtongcai   353 天前 via iPhone
    确实有这地方过于麻烦,但是…
        18
    66beta   353 天前 via Android
    不懂 Java,但是看到 Java9 - 10 越来越靠近 PHP 和 Python 了,说不定 Java11 就能满足楼主了
        19
    xomix   353 天前
    @66beta 那不行,那会儿要收费了
        20
    liuxey   353 天前
    如果一个.get()就能称为超级麻烦,那么楼主继续用 Java 可能会引起不适,赶紧收手。
        21
    cc959798   353 天前
    @changnet 没有重载
        22
    cc959798   353 天前
    @66beta 11 已经发布了
        23
    BingoXuan   353 天前
    @NeinChn
    我记得 GIL 并不保证线程安全吧。只是一般的字典的操作具备原子性而已,比如获取键和修改值。
        24
    xlui   353 天前 via iPhone
    @66beta 我用了,不能 :)
        25
    tatelucky   353 天前
    麻烦是因为你能力不够
        26
    lniwn   353 天前 via iPhone
    @NeinChn 线程安全并不是只存在于并行环境中,并发环境同样有线程安全问题,GIL 并不影响 python 线程安全编程需要填的坑。
        27
    sonyxperia   353 天前
    Java 真是人人都能黑上一点
        28
    Vegetable   353 天前
    @yanaraika 可能不是觉得好用,就是那种自己可以骂自己学校,别人不能说一句不好的感觉.
        29
    x7395759   353 天前
    只有两种计算机语言:一种是人们不停抱怨的语言,另一种是没人用的语言。

    -- C++ 之父 Bjarne Stroustrup
        30
    orangeade   353 天前 via Android
    所以用 golang 吧,性能没差多少,也没有 Java 那么多又臭又长的写法
        31
    cc959798   353 天前
    @tatelucky 动不动就说别人能力不够这是中国程序员的特色吧,张口就你技术差,能力差,有程序员的地方就有这种声音
        32
    cc959798   353 天前
    @orangeade golang 一般般吧,现在在用,后端还是可以的,但是项目做大了也是很多问题存在
        33
    xuhaoyangx   353 天前
    这都能黑。Java 带的这么多 map,就被一个使用麻烦给黑透了?
        34
    cc959798   353 天前
    @xuhaoyangx 这个可能习惯就好
        35
    sabel   353 天前
    PHP 是世界上最好的语言,vim 最好用!黑也要找点高级点的东西,比说 JVM 源码层面来黑吧
        36
    Cbdy   353 天前
    Java 设计的时候砍掉了 C++的操作符重载,只在内部重载了一些常用的操作符,带来的后遗症就是啰嗦
        37
    yidinghe   353 天前
    map.get("key") vs map["key"]
    多了四个字符。

    所以 Map “超级麻烦”?注意标题就是针对 Map 而不是整个的 Java。
        38
    zn   353 天前 via iPhone
    @orangeade 可是真的觉得 go 的语法太丑了,不堪入目
        39
    bk201   353 天前
    换成 [] 我还能看源码实现吗?
        40
    SorcererXW   353 天前
    立即使用 kotlin, 没有任何过渡成本
        41
    cc959798   353 天前
    @yidinghe 不是黑,java 是有自己的设计原则,配合 ide 可能真不慢,但是太长了,显得啰嗦
        42
    exonuclease   353 天前 via iPhone
    @changnet java 没运算符重载
        43
    natforum   353 天前
    我觉得 JavaScript 语法才蛋疼
        44
    cyspy   353 天前
    java 能赢本来就是因为简单
        45
    tatelucky   347 天前
    你要觉得难用你可以不用,我就是觉得你想黑 java 用不着不用以一个 map 在这里黑,黑的人多了,排名还第一,好气哦
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2415 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 09:12 · PVG 17:12 · LAX 01:12 · JFK 04:12
    ♥ Do have faith in what you're doing.