日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

关于comparable与comparator的用法(即自定义集合框架用法 )

發布時間:2025/3/20 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于comparable与comparator的用法(即自定义集合框架用法 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 package javastudy; 2 3 import java.util.Comparator; 4 import java.util.Iterator; 5 import java.util.TreeSet; 6 public class Ptext { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 //關于comparable的用法:以Person為例進行排序: 11 /**用法聲明 12 * 1。建立一個Person類,并定義name,age 13 * 2.建立Person的構造函數 14 * 3.建立Person集合框架,并在數組中賦值,遍歷打印輸出。 15 * 4.運行,會報錯,原因是兩個不能比較,所以在此要建立比較方法 16 * 5.在Person中繼承comparable,并重寫方法。 17 * 6.根據api中內容,定義比較值還回-1,1,0. 18 * 7.運行 19 * */ 20 TreeSet<Person> ts = new TreeSet<Person>(); 21 ts.add(new Person("Mark",12)); 22 ts.add(new Person("Keven",16)); 23 ts.add(new Person("Bob",20)); 24 ts.add(new Person("Jine",19)); 25 for(Iterator<Person> it=ts.iterator();it.hasNext();) 26 { 27 Person p = it.next(); 28 p.show(); 29 System.out.println(it.next()); 30 } 31 //自己建立一個比較器,即comparator的用法,以Dog為例進行; 32 /** 33 * 1.與person類似,建立Dog類,并定義name,weight; 34 * 2.建立構造方法; 35 * 3.打印輸出或者建立toString方法(原因,如果不建立打印輸出方法,在主函數中遍歷是會出現javastudy.Person@4aa298b7這種類型) 36 * 4。在主函數中建立自定義Dog的集合數組, 37 * 5.建立一個自定義比較器,MyCom并集成Comparator 38 * 6.定義比較方法 39 * 7.運行。 40 * */ 41 TreeSet<Dog> ds = new TreeSet<Dog>(new MyCom()); 42 ds.add(new Dog("Mark",12)); 43 ds.add(new Dog("Keven",16)); 44 ds.add(new Dog("Bob",20)); 45 ds.add(new Dog("Jine",19)); 46 for(Iterator<Dog> it=ds.iterator();it.hasNext();) 47 { 48 System.out.println(it.next()); 49 } 50 } 51 52 } 53 54 class Person implements Comparable<Person> { 55 String name; 56 int age; 57 Person(String name,int age) 58 { 59 this.name=name; 60 this.age=age; 61 } 62 void show(){ 63 System.out.println(String.format("姓名=%s,年齡=%d", name,age)); 64 } 65 66 public int compareTo(Person o) { 67 // TODO Auto-generated method stub 68 if(this.age < o.age) 69 { 70 return 1; 71 } 72 else if(this.age>o.age) 73 { 74 return -1; 75 } 76 else 77 { 78 return 0; 79 } 80 } 81 } 82 //關于comparator的用法,即DOG例子說明; 83 84 class MyCom implements Comparator<Dog> 85 { 86 87 @Override 88 public int compare(Dog arg0, Dog arg1) { 89 // TODO Auto-generated method stub 90 //這里與return 1 ,-1,0.的用法一樣,這是簡寫。 91 //注:因為建立的自定義比較Dog1,與dog2,所以這里兩種方法都可以使用。而第一種只是利用comparable不行。 92 return arg0.name.compareTo(arg1.name); 93 } 94 95 } 96 class Dog 97 { 98 String name; 99 int weight; 100 Dog(String name,int weight) 101 { 102 this.name=name; 103 this.weight=weight; 104 } 105 @Override 106 public String toString() { 107 return "Dog [name=" + name + ", weight=" + weight + "]"; 108 } 109 }

?

轉載于:https://www.cnblogs.com/xiadongqing/p/5079765.html

總結

以上是生活随笔為你收集整理的关于comparable与comparator的用法(即自定义集合框架用法 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。