⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fig7-32.java

📁 数据结构与算法Java语言版(美)Adam Drozdek著
💻 JAVA
字号:
import java.io.*;
import java.util.TreeSet;

class Person {
    protected String name;
    protected int age;
    public Person(String s, int i) {
        name = s; age = i;
    }
    public Person() {
        this("",0);
    }
    public String toString() {
        return "(" + name + "," + age  + ")";
    }
}

class PersonByName extends Person implements Comparable {
    public PersonByName(String s, int i) {
        super(s,i);
    }
    public PersonByName() {
        super();
    }
    public PersonByName(Person p) {
        super(p.name,p.age);
    }
    public int compareTo(Object p) {
        return name.compareTo(((Person)p).name);
    }
}

class PersonByAge extends Person implements Comparable {
    public PersonByAge(String s, int i) {
        super(s,i);
    }
    public PersonByAge() {
        super();
    }
    public PersonByAge(Person p) {
        super(p.name,p.age);
    }
    public int compareTo(Object p) {
        return age - ((Person)p).age;
    }
}

class PersonComparator implements java.util.Comparator {
    public int compare(Object ob1, Object ob2) {
        if (ob1 == ob2)
             return 0;
        else if(ob1 == null)
             return -1;
        else if (ob2 == null)
             return 1;
        else return ((Person)ob1).name.compareTo(((Person)ob2).name);
    }
}
             
class TestTreeSet {
    public static void main(String[] ar) {
        TreeSet set1 = new TreeSet();        // set1 = []
        set1.add(new Integer(4));            // set1 = [4]
        set1.add(new Integer(5));            // set1 = [4, 5]
        set1.add(new Integer(6));            // set1 = [4, 5, 6]
        set1.add(new Integer(5));            // set1 = [4, 5, 6]
        System.out.println("set1 = " + set1);// set1 = [4, 5, 6]
        System.out.println(set1.contains(new Integer(5)));    // true
        System.out.println(set1.contains(new Integer(7)));    // false
        System.out.println(set1.first() + " " + set1.last()); // 4 6
        System.out.println(set1.headSet(new Integer(5)));     // [4]
        System.out.println(set1.tailSet(new Integer(5)));     // [5, 6]
        TreeSet set2 = new TreeSet(set1);    // set2 = [4, 5, 6]
        set2.remove(new Integer(5));         // set2 = [4, 6]
        System.out.println("set2 = " + set2);
        set1.removeAll(set2);                // set1 = [5]
        System.out.println("set1 = " + set1);
        set1.addAll(set2);                   // set1 = [4, 5, 6]
        System.out.println("set1 = " + set1);

        TreeSet pSet1 = new TreeSet(), pSet2 = new TreeSet();
        Person[] p = {new Person("Gregg",25), new Person("Ann",30),
                      new Person("Bill",20),  new Person("Gregg",35),
                      new Person("Kay",30)};
        for (int i = 0; i < p.length; i++)
             pSet1.add(new PersonByName(p[i]));
        System.out.println("pSet1 = " + pSet1);
        // pSet1 = [(Ann,30), (Bill,20), (Gregg,25), (Kay,30)]
        for (int i = 0; i < p.length; i++)
             pSet2.add(new PersonByAge(p[i]));
        System.out.println("pSet2 = " + pSet2);
        // pSet2 = [(Bill,20), (Gregg,25), (Ann,30), (Gregg,35)]
        java.util.Iterator it = pSet2.iterator();
        it.next();
        ((Person)it.next()).age = 50;
        System.out.println("pSet2 = " + pSet2);
        // pSet2 = [(Bill,20), (Gregg,50), (Ann,30), (Gregg,35)]
        pSet2.add(new PersonByAge("Craig",40));
        System.out.println("pSet2 = " + pSet2);
        // pSet2 = [(Bill,20), (Craig,40), (Gregg,50), (Ann,30), (Gregg,35)]
        for (int i = 0; i < p.length; i++)
            System.out.println(p[i] + " " + pSet2.contains(new PersonByAge(p[i])));
        // (Gregg,25) false
        // (Ann,30) false
        // (Bill,20) true
        // (Gregg,35) false
        // (Kay,30) false
        TreeSet pSet3 = new TreeSet(new PersonComparator());
        for (int i = 0; i < p.length; i++)
             pSet3.add(p[i]);
        System.out.println("pSet3 = " + pSet3);        
        pSet3.add(null);
        pSet3.add(null);
        System.out.println("pSet3 = " + pSet3);        
        // pSet3 = [null, (Ann,30), (Bill,20), (Gregg,25), (Kay,30)]
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -