Java程序员被误导的一个概念,90%人不知道
我们经常听说List是有序且重复的,Set是无序不重复的。这里有个误区,这里说的顺序有两个概念,一是按添加的顺序排列,二是按自然顺序a-z排列。Set并不是无序的,传统说的Set无序是指HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。
保证元素添加的顺序:LinkedHashSet
保证元素自然的顺序:TreeSet
下面通过一个实例看下就明白了
结果输出:
s3 s4 s5 s1 s2
s1 s5 s3 s4 s2
s1 s2 s3 s4 s5