Newyorkcity
V2EX  ›  问与答

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

  •  
  •   Newyorkcity · Mar 10, 2020 · 1223 views
    This topic created in 2260 days ago, the information mentioned may be changed or developed.
    允许其中元素重复 -> List
    无序的 -> List 中没有无序的
    是这样嘛?

    谢谢

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