Java 自定義Sorted集合
阿新 • • 發佈:2019-01-22
From JavaSE6.0 程式設計指南
閱讀(211) | 評論(0) | 轉發(0) | 給主人留下些什麼吧!~~ 評論熱議
點選(此處)摺疊或開啟
-
package wyf.jc;
-
import java.util.*;
-
//實現Comparable介面的元素類
-
class MyEntry implements Comparable
-
{
-
//MyEntry的成員屬性
-
int size;
-
//MyEntry類的無參構造器
-
public MyEntry()
-
{}
-
//MyEntry類的有參構造器
-
public MyEntry(int size)
-
{
-
this.size=size;
- }
-
//實現compareTo方法
-
public int compareTo(Object o)
-
{
-
//強制型別轉換
- MyEntry me=(MyEntry)o;
-
//定義排序的規則
-
return
-
}
-
//重寫equals方法
-
public boolean equals(Object o)
-
{
-
//強制型別轉換
- MyEntry me=(MyEntry)o;
-
return (me.size==this.size);
-
}
-
//重寫hashCode方法
-
public int hashCode
- {
-
return 12;
-
}
-
}
-
//主類
-
public class Sample14_12
-
{
-
public static void main(String[] args)
-
{
-
//建立了一個TreeSet集合的物件
-
TreeSet ts=new TreeSet();
-
//向其中依次新增不同屬性的學生物件
-
System.out.println("=============插入21===============");
-
ts.add(new MyEntry(21));
-
System.out.println("=============插入19===============");
-
ts.add(new MyEntry(19));
-
System.out.println("=============插入18===============");
-
ts.add(new MyEntry(18));
-
System.out.println("=============插入28===============");
-
ts.add(new MyEntry(28));
-
System.out.println("=========再次插入21===============");
-
ts.add(new MyEntry(21));
-
System.out.println("==================================");
-
//列印輸出TreeSet中的內容
-
System.out.print("這裡是TreeSet操作後的結果:");
-
System.out.println(ts);
-
}
- }
點選(此處)摺疊或開啟
-
package wyf.jc;
-
import java.util.*;
-
class Student implements Comparable
-
{
-
//學生的成員屬性
-
String name;
-
int age;
-
int classNum;
-
//學生類的無參構造器
-
public Student(){}
-
//學生類的有參構造器
-
public Student(String name,int age,int classNum)
-
{
-
this.name=name;
-
this.age=age;
-
this.classNum=classNum;
- }
-
//實現compareTo方法
-
public int compareTo(Object o)
-
{
-
//強制型別轉換
-
Student s=(Student)o;
-
//用classNum作為基準進行排序
-
return this.classNum-s.classNum;
-
}
-
}
-
//定義比較器
-
class AgeCompare implements Comparator
-
{
-
public int compare(Object o1,Object o2)
-
{
-
//將接受到的物件的引用進行強制型別轉換
-
Student s1=(Student)o1;
-
Student s2=(Student)o2;
-
//指定按年齡進行排序
-
return s1.age-s2.age;
-
}
-
}
-
//主類
-
public class Sample14_13
-
{
-
public static void main(String[] args)
-
{
-
//建立TreeSet物件ts1與ts2
-
TreeSet ts1=new TreeSet();
-
TreeSet ts2=new TreeSet(new AgeCompare());
-
//向ts1中新增內容不同的學生物件的元素
-
ts1.add(new Student("tom",21,97005));
-
ts1.add(new Student("jerry",19,97003));
-
ts1.add(new Student("lucy",18,97004));
-
ts1.add(new Student("smith",28,97001));
-
ts1.add(new Student("jc",23,97002));
-
//想ts2中新增與ts1中相同的元素
-
ts2.add(new Student("tom",21,97005));
-
ts2.add(new Student("jerry",19,97003));
-
ts2.add(new Student("lucy",18,97004));
-
ts2.add(new Student("smith",28,97001));
-
ts2.add(new Student("jc",23,97002));
-
//列印ts1與ts2中的元素
-
System.out.println("==========================="+
-
"==========================");
-
System.out.println("這裡的SortedSet是按班號進行的排序:");
-
System.out.println(ts1);
-
System.out.println("==========================="+
-
"==========================");
-
System.out.println("這裡的SortedSet是按年齡進行的排序:");
-
System.out.println(ts2);
-
}
- }
閱讀(211) | 評論(0) | 轉發(0) | 給主人留下些什麼吧!~~ 評論熱議