怎么理解Set集合中的HashSet中的元素是无序的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 14:00:32
怎么理解Set集合中的HashSet中的元素是无序的?

怎么理解Set集合中的HashSet中的元素是无序的?
怎么理解Set集合中的HashSet中的元素是无序的?

怎么理解Set集合中的HashSet中的元素是无序的?
要理解这个问题应该考虑到Set是个接口.接口的契约很单纯,不会做过多的保证.Set的契约重点就是“元素不重复的集合”,而对顺序不做保证(也就是不做限制,有序无序都可以).实现该接口的类既可以提供有序的实现,也可以提供无序的实现.
HashSet在保存数据的时候显然还是得按一定顺序放入其背后的数组中,但顺序不是用户可控制的,对用户来说就是“无序”.
与之相对,SortedSet接口的契约就包含了“元素不重复,且按照用户指定的方式排序的集合”的意义.SortedSet接口满足Set接口的契约,并额外添加的“有序”的契约.