java set 顺序

集合类set list 的存入顺序问题 我彻底乱了 谁知道 给我讲下呗
我的教材中说:
set中对象不按特定的方式排序 啥概念?
list集合中的对象按索引位置排序 (是不是说存入时什么顺序就是什么顺序?)
说arraylist是线程不同步的 怎么理解?
我测试了下 发现attaylist果然是物理顺序 hashSet好像没啥顺序 treeSet顺序是自动排列的 是这样的吧?

在java语言中,提供多种不同的结构来组织对象,Set(集合)是其中的一种,本身是一个接口,其迭代时的顺序取决于其具体实现。典型的实现包括:

HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;

LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;

TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

扩展资料

Set<String> set = new TreeSet<String>();       

set.add("f");  

set.add("a");  

set.add("b");  

set.add("c");  

set.add("d");  

set.add("e");          

System.out.println(set);

参考资料:百度百科 set (计算机学)



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-30

集(set)是最简单的一种集合,它的对象不按特定方式排序(不保证集合中元素的顺序),只是简单的把对象加入集合中,就像往口袋里放东西。集(set)它不允许出现重复元素且允许包含值为null的元素,但最多只能有一个null元素

列表(list)的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开头和一个结尾,当然,它与根本没有顺序的集是不同的。

Set 和List 都继承了Conllection

扩展资料

一、java中的set接口有如下的特点:

1、不允许出现重复元素;

2、集合中的元素位置无顺序;

3、有且只有一个值为null的元素。

二、因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特性为:

1、互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。

2、无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序。但就集合本身的特性而言,元素之间没有必然的序。

3、空集的性质:空集是一切集合的子集

Set不保存重复的元素。Set中最常被使用的是测试归属性,你可以很容易的询问某个对象是否在某个Set中。Set具有与Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只是行为不同。

参考资料:百度百科-java集合类

本回答被网友采纳
第2个回答  推荐于2017-09-14
set有多种,hashset,treeset和linkedhashset比较常见,hashset最常用。linkedhashset是有序的,hashset是无序的。linkedhashset是以链表形式存放数据的,hashset是用hash散列存放数据的。list也分好几种,主要有arraylist和linkedlist,都是有序的,其中arraylist类比数组,linkedlist类比链表。arraylist是线程不同步的,也就是说多个线程同时操作一个list那么List中存放数据的一致性就不能保证。vector是线程同步的,也就是说线程安全的。本回答被提问者采纳
第3个回答  2010-05-05
list用add()加进去后是有先后顺序的,顺序是一定的,set刚好没有顺序,简单来说是乱的
ArrayList 把1,2,3,4先后加进去,遍历出来就是1234,Set可不一定哟,可能就是4213或1243等等
第4个回答  2015-08-10

你好!

    set集合  是不保证集合中元素的顺序的

    list 集合  才会有顺序 List的特征是其元素以线性方式存储

    set它不允许出现重复元素 且允许包含值为null的元素,但最多只能有一个null元素

    Set 和List 都继承了Conllection

相似回答