日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Comparator 和 Comparable

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Comparator 和 Comparable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Comparator 和 Comparable 比較

Comparable是排序接口;若一個類實現了Comparable接口,就意味著“該類支持排序”。
而Comparator是比較器;我們若需要控制某個類的次序,可以建立一個“該類的比較器”來進行排序。

我們不難發現:Comparable相當于“內部比較器”,而Comparator相當于“外部比較器”。

Comparable位于java.lang包下,comparator位于java.util包下

實現comparable接口的類,需要重寫compareTo()方法

實現comparator接口的類,需要重寫compare()方法

實現Comparable接口的對象列表(和數組)可以通過?Collections.sort(和?Arrays.sort)進行自動排序

強行對某個對象 collection 進行整體排序的比較函數。可以將 Comparator 傳遞給 sort 方法(如?Collections.sort?或?Arrays.sort),從而允許在排序順序上實現精確控制。

實現Comparable接口的使用實例

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;public class Present1 implements Comparable<Present1>{private int num;private double price;private String name;public Present1(int num,double price,String name) {// TODO Auto-generated constructor stubthis.num=num;this.price=price;this.name=name;}public static void main(String args[]){Present1 p1=new Present1(10, 20, "手表");Present1 p2=new Present1(15, 30, "裙子");Present1 p3=new Present1(12, 24, "包包");Present1 p4=new Present1(40, 40, "書");List<Present1> list=new ArrayList<Present1>();list.add(p1);list.add(p2);list.add(p3);list.add(p4);Collections.sort(list);for(int i=0;i<list.size();i++){System.out.println(list.get(i).num);}}@Overridepublic int compareTo(Present1 o) {// TODO Auto-generated method stubreturn this.num-o.num;}
}

?

實現comparator接口的實例:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;public class Present2 {public int num;public double price;public String name;public Present2(int num,double price,String name) {// TODO Auto-generated constructor stubthis.num=num;this.price=price;this.name=name;}public static void main(String args[]){Present2 p1=new Present2(10, 20, "手表");Present2 p2=new Present2(15, 15, "裙子");Present2 p3=new Present2(12, 24, "包包");Present2 p4=new Present2(40, 23, "書");List<Present2> list=new ArrayList<Present2>();list.add(p1);list.add(p2);list.add(p3);list.add(p4);Collections.sort(list, new numComparator());for(int i=0;i<list.size();i++){System.out.println(list.get(i).num+" -"+list.get(i).name);}Collections.sort(list, new priceComparator());for(int i=0;i<list.size();i++){System.out.println(list.get(i).price+" -"+list.get(i).name);}}
}class numComparator implements Comparator<Present2>{@Overridepublic int compare(Present2 o1, Present2 o2) {// TODO Auto-generated method stubreturn o1.num-o2.num;}}class priceComparator implements Comparator<Present2>{@Overridepublic int compare(Present2 o1, Present2 o2) {// TODO Auto-generated method stubreturn new Double(o1.price).compareTo(new Double(o2.price));}}

?

轉載于:https://www.cnblogs.com/zmhappy/p/6484789.html

總結

以上是生活随笔為你收集整理的Comparator 和 Comparable的全部內容,希望文章能夠幫你解決所遇到的問題。

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