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

Java 集合类库里是不是没有允许其中元素重复的无序的 Collection 接口的实现类?

  •  
  •   Newyorkcity · 2020-03-10 14:14:05 +08:00 · 880 次点击
    这是一个创建于 1754 天前的主题,其中的信息可能已经有所发展或是发生改变。
    允许其中元素重复 -> List
    无序的 -> List 中没有无序的
    是这样嘛?

    谢谢

    话说为什么说 set 是无序的? set 接口继承 Collection 接口继承 Iterable 接口,也就是说有迭代器,能执行`next()`操作,理论上也能是西安`get (int index)`方法。。。
    rockyou12
        1
    rockyou12  
       2020-03-10 14:15:38 +08:00
    你要插入顺序随机还是什么?一定要打乱插入顺序,自己写个方法打乱不久行了
    Newyorkcity
        2
    Newyorkcity  
    OP
       2020-03-10 14:21:34 +08:00
    @rockyou12 不是,就是最近在看 javase 集合这一块,我想 List 和 Set 接口之所以是 Collection 的两大分叉的根本分歧点在哪里,无序 /有序?还是说是有无重复元素?
    lhx2008
        3
    lhx2008  
       2020-03-10 14:24:21 +08:00
    区别肯定是有无重复元素,contains 的复杂度也不一样。
    至于保存插入顺序+无重复元素,LinkedHashSet
    lhx2008
        4
    lhx2008  
       2020-03-10 14:27:45 +08:00   ❤️ 1
    允许其中元素重复的无序:Collections.shuffle(xxxList)
    rockyou12
        5
    rockyou12  
       2020-03-10 14:36:22 +08:00   ❤️ 1
    @Newyorkcity list 的 javadoc 其实说了`Unlike sets, lists typically allow duplicate elements. `
    gemini767
        6
    gemini767  
       2020-03-10 14:41:07 +08:00 via iPhone
    @Newyorkcity 区别是查询和插入的复杂度吧……其实差别就是数据结构和算法
    lululau
        7
    lululau  
       2020-03-10 14:44:06 +08:00 via iPhone
    1. 不是脱离场景发明问题
    2. 有序的就是无序的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:56 · PVG 08:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.