• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java面向對象
    Java異常
    Java數組
    Java常用類
    Java集合
    Java IO流
    Java線程
    Java反射
    Socket編程
    Java注解開發
    Java GoF設計模式
    HashMap
    Java內存模型
    Java線性表

    Java TreeSet集合

     

     

    TreeSet集合實現了SortedSet接口, 可以對集合中元素進行自然排序, 要求集合中的元素必須是可比較的。

     

    package com.wkcto.chapter05.set;
    
    import java.util.Comparator;
    import java.util.TreeSet;
    
    /**
     * TreeSet集合
     * 		可以對元素進行自然排序, 要求元素必須是可比較的
     * 			1)創建TreeSet集合時,通過構造方法指定Comparator比較器
     * 			2)如果沒有指定Comparator比較器, 要求元素的類必須實現Comparable接口
     * @author 蛙課網
     *
     */
    public class Test03 {
    
    	public static void main(String[] args) {
    		//1) 創建TreeSet集合,存儲Person對象, 在構造方法中指定Comparator比較器,按姓名升序排序
    		TreeSet<Person> treeSet = new TreeSet<>(new Comparator<Person>() {
    			//在匿名內部類中重寫接口的抽象方法
    			@Override
    			public int compare(Person o1, Person o2) {
    				//指定一個比較規則
    				return o1.name.compareTo(o2.name);   //姓名升序
    			}
    		});
    		
    		//2)添加元素
    		treeSet.add(new Person("lisi", 18));
    		treeSet.add(new Person("feifei", 28));
    		treeSet.add(new Person("yong", 35));
    		treeSet.add(new Person("bin", 36));
    		treeSet.add(new Person("zhang", 33));
    		
    		//3)直接打印
    		System.out.println( treeSet );
    		
    		//4) 根據已有TreeSet創建新的TreeSet集合
    		TreeSet<Person> treeSet22 = new TreeSet<>(treeSet);
    		System.out.println( treeSet22 );
    		
    		//5) 使用TreeSet的無參構造, 沒有指定Comparator比較器, 要求Person類實現Comparable接口
    		TreeSet<Person> treeSet33 = new TreeSet<>();
    		treeSet33.addAll(treeSet);		
    		System.out.println( treeSet33);
    	}
    
    }

     

    TreeSet集合底層是TreeMap,向TreeSet集合添加元素,實際上是把該元素作為鍵添加到了底層TreeMap中,TreeSet集合實際上就是底層TreeMap的鍵的集合。

     

    package com.wkcto.chapter05.set;
    
    import java.util.Comparator;
    import java.util.TreeSet;
    /**
     * 注意:
     * 		在TreeSet集合中, 是根據Comparator/Comparable的比較結果是否為0來判斷是否為同一個對象
     * 		如果Comparator的compare()方法/Comparable的compareTo()方法的返回值為0 就認為是同一個對象
     * @author 蛙課網
     *
     */
    public class Test04 {
    
    	public static void main(String[] args) {
    		//創建TreeSet集合,存儲Person對象, 通過構造方法指定Comparator比較器,按年齡降序排序
    		TreeSet<Person> treeSet = new TreeSet<>(new Comparator<Person>() {
    			@Override
    			public int compare(Person o1, Person o2) {
    				return o2.age - o1.age;
    			}
    		});
    		
    		//當前treeSet是根據年齡比較Person大小的, 在添加Person對象時, 如果年齡相同就認為是同一個對象
    		treeSet.add(new Person("lisi", 18));
    		treeSet.add(new Person("feifei", 18));
    		treeSet.add(new Person("zhang", 18));
    		treeSet.add(new Person("yong", 18));
    		
    		System.out.println( treeSet.size() ); 		// 1
    		System.out.println( treeSet );
    		System.out.println( treeSet.contains( new Person("wang", 18)));   //true
    	}
    
    }

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏