打字猴:1.700445605e+09
1700445605 编写高质量代码:改善Java程序的151个建议 [:1700438152]
1700445606 编写高质量代码:改善Java程序的151个建议 建议81:非稳定排序推荐使用List
1700445607
1700445608 我们知道Set与List的最大区别就是Set中的元素不可以重复(这个重复指的equals方法的返回值相等),其他方面则没有太大的区别了,在Set的实现类中有一个比较常用的类需要了解一下:TreeSet,该类实现了类默认排序为升序的Set集合,如果插入一个元素,默认会按照升序排列(当然是根据Comparable接口的compareTo的返回值确定排序位置了),不过,这样的排序是不是在元素经常变化的场景中也适用呢?我们来看例子:
1700445609
1700445610 public static void main(String[]args){
1700445611
1700445612 SortedSet<Person>set=new TreeSet<Person>();
1700445613
1700445614 //身高180CM
1700445615
1700445616 set.add(new Person(180));
1700445617
1700445618 //身高175CM
1700445619
1700445620 set.add(new Person(175));
1700445621
1700445622 for(Person p:set){
1700445623
1700445624 System.out.println(“身高:”+p.getHeight());
1700445625
1700445626 }
1700445627
1700445628 }
1700445629
1700445630 static class Person implements Comparable<Person>{
1700445631
1700445632 //身高
1700445633
1700445634 private int height;
1700445635
1700445636 public Person(int_age){
1700445637
1700445638 height=_age;
1700445639
1700445640 }
1700445641
1700445642 /*height的getter/setter方法省略*/
1700445643
1700445644 //按照身高排序
1700445645
1700445646 public int compareTo(Person o){
1700445647
1700445648 return height-o.height;
1700445649
1700445650 }
1700445651
1700445652 }
1700445653
1700445654 这是set的简单用法,定义一个Set集合,之后放入两个元素,虽然175后放入,但是由于是按照升序排列的,所以输出的结果应该是175在前,180在后,结果如下:
[ 上一页 ]  [ :1.700445605e+09 ]  [ 下一页 ]