set无序,list有序的正确理解 您所在的位置:网站首页 z在集合里是什么意思 set无序,list有序的正确理解

set无序,list有序的正确理解

2024-06-24 09:02| 来源: 网络整理| 查看: 265

1、List,Set都是继承自Collection接口。List特点:元素有放入顺序,元素可重复 。Set特点:元素无放入顺序,元素不可重复。注意,元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的。

2、其实,有序或无序是指是否按照其添加的顺序来存储对象。List 是按照元素的添加顺序来存储的。而 Set 的实现类都有一套自己的排序算法,每添加一个元素,都会按照其内部算法将元素添加到合适的位置,所以Set集合不能有重复的元素,也不能保证内部存储是按元素添加的顺序而存储的。

3、List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet

4、Map.keyset(),表示将map对象的所有key值已set集合的形式返回,因为key值是不可重复的,因此这里用set集合存储key并返回也符合规则。

5、Map.keySet()方法把key映射到Set里,其是否有序,文档没有明确说明,个人做测试后结论大致如下:

 Hashtable.keySet()          降序

 TreeMap.keySet()            升序

 HashMap.keySet()            乱序

 LinkedHashMap.keySet()      原序

这样,Map.keySet()得到的Set集合顺序取决于不同的Map类型。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有