为了账号安全,请及时绑定邮箱和手机立即绑定

set集合类怎么有序啊

我按写的写完运行发现有数组下标越界异常,于是我将Course temp=(Course)coursesToSelect.get(0);取出就可以运行了,然后输入ID发现并不是无序的。请问这是为什么啊,求老师帮我解答一下

正在回答

5 回答

向Set接口的实现类HashSet中添加元素,其实元素是无序的,在某些特殊情况下,你可能发现元素好像是有序的,这种情况其实只是一种巧合,你只要记住元素是无序的就可以了。TreeSet是SortedSet接口的实现类,它的元素是有序的,按照大小进行自动的排序。

0 回复 有任何疑惑可以回复我~

如果我记得没错的话,set本来就是有序的,map是无序的

0 回复 有任何疑惑可以回复我~
#1

wire 提问者

按老师讲的list有序set无序,我是完全和他一样写下来的,他上面运行下来确实是无序的,我把所有的coursesToSelet.get()注释了,运行后却是有序的
2015-09-22 回复 有任何疑惑可以回复我~
#2

dumbaodouble

哥们,你再回头学一下吧。Set接口和List接口都继承自Collection接口,Set接口的实现类是HashSet,元素是无序的,元素不可重复,当添加重复的元素时会采用屏蔽技术将重复元素屏蔽掉。SortedSet接口的实现类是TreeSet,元素是按照大小排序,但仍不可重复。List接口的实现类是ArrayList和LinkedList,它们是有序的,可重复的,因为重复的元素可以放在不同的位置。Map接口的实现类是HashMap,元素有键和值组成,键是唯一的,值可以重复,键和值都是对象。元素是无序的。SortedMap接口的实现类是TreeMap,元素按照键的大小进行排序。
2015-09-22 回复 有任何疑惑可以回复我~

有巧合发生

0 回复 有任何疑惑可以回复我~
#1

wire 提问者

什么意思啊
2015-09-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

set集合类怎么有序啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信