/*Set : 無序,不可以重復元素|--HashSet:數據結構是哈希表,線程是非同步的保證元素唯一性原理: 判斷元素的HashCode值是否相同如果相同,還會繼續判斷元素的equals方法是否為True|TreeSet: 可以對集合中的元素進行排序底層數據結構是二叉樹保證元素唯一性的依據是compareTo方法TreeSet排序的第一種方式:讓元素自身具備比較性元素需要實現Comparable接口,覆蓋compareTo方法這種方式也稱為元素的自然順序,或者叫做默認順序
*/import java.util.*;class Student implements Comparable//該接口強制讓學生具備比較性
{private String name;private int age;Student(String name, int age){this.name = name;this.age = age;}public String getName(){return name;}public int getAge(){return age;}public int compareTo(Object obj)//覆蓋父類中的函數{if( !(obj instanceof Student))throw new RuntimeException("不是學生對象!");Student stu = (Student)obj;if(this.age < stu.age)return -1;if(stu.age == this.age)return this.name.compareTo(stu.name);//當主要條件相同時 ,也要判斷次要條件return 1;}}class TreeSetDemo
{public static void main(String []args){TreeSet ts = new TreeSet();ts.add(new Student("NUM3",33));ts.add(new Student("NUM2",22));ts.add(new Student("NUM1",11));ts.add(new Student("NUM4",44));// ts.add("aab");
// ts.add("aaa");
// ts.add("aaba");
// ts.add("cdb");
// ts.add("Dad");//大寫的D 的ASCLL 碼值比a 小
// //TreeSet 是按照元素的ASCLL 大小進行排序Iterator it = ts.iterator();while( it.hasNext()){Student s = (Student)it.next();sop( s.getName() + " "+ s.getAge());}}public static void sop(Object obj){System.out.println(obj);}}
轉載于:https://www.cnblogs.com/dengshiwei/p/4258524.html