【JAVA語法】 -- 方便的Comparable介面
寫在前面:
我也是一名java語言的愛好者,僅以此文作為學習的記錄,對於文中出現的程式碼規範,程式碼格式,演算法效率等問題,希望各路大神不吝賜教,在下感激不盡。同是學習的同學也同樣希望互相交流,取長補短。
——zsferrier@126.com
一.概述
實現了Comparable介面的自定義類T,即定義了T的比較方法compareTo(就像integer類的大於等於小於),換句話說腦洞足夠大你可以任意定義自己需要的大小規則,結果是當你把T類的物件裝入List容器後,可以直接通過collections.sort方法進行排序。
二.compareTo方法
int compareTo(T o)
比較此物件與指定物件的順序。如果該物件小於、等於或大於指定物件,則分別返回負整數、零或正整數。
值得一提的是Integer和String已經實現CompareTo方法
三.例項
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Main {
/**
* @param args
*/
class Node implements Comparable<Node>{
public int value;
public String NodeNum;
public Node(int v,String s){
value = v;
NodeNum =s;
}
@Override
public int compareTo(Node arg0) {//實現compareTo
// TODO Auto-generated method stub
if(value<arg0.value){
return -1;
}else if (value==arg0.value) {
return 0;
}else {
return 1;
}
}
@Override
public String toString(){//重寫本類物件的標準化輸出
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(value+" ");
stringBuilder.append(NodeNum);
return stringBuilder.toString();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Node n1 = new Main().new Node(3,"num1");
Node n2 = new Main().new Node(1,"num2");
Node n3 = new Main().new Node(6,"num3");
List<Node> nodeList= new ArrayList<Node>(Arrays.asList(n1,n2,n3));
Collections.sort(nodeList);
System.out.println(nodeList);
}
}
相關文章
- java中的Comparable介面Java
- 5 分鐘搞定 Java Comparable 介面Java
- Java Comparable 和 Comparator 介面詳解Java
- Java Comparable排序介面和Comparator比較器介面Java排序
- JAVA中的Comparable介面和自定義比較器Java
- Java中Comparable和Comparator介面區別分析Java
- java的Comparator和ComparableJava
- JDK原始碼閱讀-Comparable介面JDK原始碼
- Comparable介面的實現和使用
- Java Comparable 與 ComparatorJava
- java Comparable和Comaprator的對比Java
- cannot be cast to java.lang.ComparableASTJava
- 從java內建類和自定義類比較Comparable介面和Comparator介面實現排序的不同Java排序
- java語法一Java
- Java 語法糖Java
- Java基本語法Java
- Java 中的語法糖,真甜。Java
- java的其他語法基礎Java
- JAVA語法糖和語法糖編譯Java編譯
- Java基礎系列-Comparable和ComparatorJava
- Java 中 Comparable 和 Comparator 比較Java
- java基礎之Comparator和ComparableJava
- 閒說: Java 中Comparable 和 Comparator 的區別Java
- Java 基礎語法Java
- JAVA語法基礎Java
- java支援with語法麼Java
- Java 語法介紹(一):Java語言的基本組成(轉)Java
- java中的try-with-resource語法Java
- Java面試需要知道的SQL語句語法Java面試SQL
- Builder模式與Java語法UI模式Java
- JAVA基礎語法(一)Java
- Java語法糖詳解Java
- JAVA語法彙總(三)Java
- java基本語法--運算子Java
- Java基礎語法1Java
- Java基本語法回顧Java
- Java基礎語法[上]Java
- JAVA語法規則 (轉)Java