set无序,list有序的正确理解 |
您所在的位置:网站首页 › z在集合里是什么意思 › set无序,list有序的正确理解 |
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 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |