Java 比較方法彙總 ---- Comparable
Java 比較方法彙總
一、 排序介面
1、 類中實現介面Comparable, 呼叫compareTo方法: 如果 返回值大於0,則將大的數放後面;如果返回值等於0,則不做任何處理; 如果返回值小於0, 則將小的數放前面。也就是說 java預設的排序方式是升序排序
package com.m;
import java.io.Serializable;
import java.util.Collections;
public class MyTestClass implements Comparable<MyTestClass>, Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
/**
* 返回值為正數,表明this中的id大於myTestClass中的id, 排序時將大的數移至後面
* 返回值為0,表明this中的id等於myTestClass中的id
* 返回值為負數,表明this中的id小於myTestClass中的id
*/
@Override
public int compareTo(MyTestClass myTestClass) {
if (myTestClass == null) return -1;
if (this.id == null) return 1;
if (myTestClass.getId() == null) return -1;
return this.getId().compareTo(myTestClass.getId());
}
}
二 、 List排序方法
1、 呼叫 Collections.sort(): 實質是呼叫Arrays.sort
2、 呼叫 Arrays.sort()
三、 Map排序方法
1、 按照key排序
/**
* 使用 Map按key進行排序
* @param map
* @return
*/
public static Map<String, String> sortMapByKey(Map<String, String> map) {
if (map == null || map.isEmpty()) {
return null;
}
Map<String, String> sortMap = new TreeMap<String, String>(
new MapKeyComparator());
sortMap.putAll(map);
return sortMap;
}
//比較器類
class MapKeyComparator implements Comparator<String>{
@Override
public int compare(String str1, String str2) {
return str1.compareTo(str2);
}
}
2、 按照value排序
/**
* 使用 Map按value進行排序
* @param map
* @return
*/
public static Map<String, String> sortMapByValue(Map<String, String> oriMap) {
if (oriMap == null || oriMap.isEmpty()) {
return null;
}
Map<String, String> sortedMap = new LinkedHashMap<String, String>();
List<Map.Entry<String, String>> entryList = new ArrayList<Map.Entry<String, String>>(
oriMap.entrySet());
Collections.sort(entryList, new MapValueComparator());
Iterator<Map.Entry<String, String>> iter = entryList.iterator();
Map.Entry<String, String> tmpEntry = null;
while (iter.hasNext()) {
tmpEntry = iter.next();
sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
}
return sortedMap;
}
//比較器類
class MapValueComparator implements Comparator<Map.Entry<String, String>> {
@Override
public int compare(Entry<String, String> me1, Entry<String, String> me2) {
return me1.getValue().compareTo(me2.getValue());
}
}
相關推薦
Java 比較方法彙總 ---- Comparable
Java 比較方法彙總 一、 排序介面 1、 類中實現介面Comparable, 呼叫compareTo方法: 如果 返回值大於0,則將大的數放後面;如果返回值等於0,則不做任何處理; 如果返回值小於0, 則將小的數放前面。也就是說 java預設的排序方式是
Java中類的比較與排序方法(應用Comparable介面與Comparator介面)
引言 在平時寫Java的程式的時候,如果要進行一些基本型別的變數的比較,可以很方便得呼叫’Math.max()’、Math.min()等方法,如果要對陣列或者列表進行排序,也可以用Arrays.sort()和Collections.sort()等已經封裝好的方法來進行。但是,如果是一個自
java中求素數的幾種方法彙總及比較
首先來看兩道題目: 1. 請實現一個函式,對於給定的整型引數 N,該函式能夠把自然數中,小於 N 的質數,從小到大打印出來。比如,當 N = 10,則打印出:2 3 5 7**重點內容** 2. 請
Java排序方法--List,數組,【自定義】繼承Comparable和Comparator
pri locale student ide abcdefg 接口 com main object (一)list和數組 ①List默認排序代碼: public static void main(String[] args) { List<String>
Java中字串比較方法equals()和equalsIgnoreCase()的區別
1. equals() equals( )是比較兩個字串是否相等,它的一般表示式如下: /** * Compares this string to the specified object. The result is {@code * true} if and o
JAVA——特殊類(1)——String類(3)——字串比較(方法)
(二)字串比較 (1)比較字串是否相等——區分大小寫——返回值為Boolean型 public boolean equals(Object anObject) //anObject——傳入需要被比較的物件 //此方法區分大小寫 (2)比較字串是否相
java Collection集合刪除某一元素方法彙總
無論在自己寫程式玩還是實際專案應用中,操作java.util.Collection結合都是最常用的,而且也是最重要的知識點。從集合中刪除某一元素同樣是很常用的操作。對了,面試中也總考察,面試官說要考察你的實際程式設計的能力,誰知道呢。下面總結了從集合中刪除某一元素的幾種方法
Java中效能優化方法彙總
很多同學在日常寫Java的時候很少去關心效能問題,但是在我們寫程式碼的過程中必須考慮到效能對程式的影響。小到我們使用位運算來實現算術運算,大到我們對 Java 程式碼的總體架構設計,效能其實離我們很近。本文介紹了Java中效能優化的35種方法,需要的朋友可以參考
JAVA中處理大數方法彙總
在用C或者C++處理大數時感覺非常麻煩,但是在JAVA中有兩個類BigInteger和BigDecimal分別表示大整數類和大浮點數類,至於兩個類的物件能表示最大範圍不清楚,理論上能夠表示無
【JAVA學習】java中==、equals()、hashCode()都和物件的比較有關,在java中這三者各有什麼用處呢,即java中為什麼需要設計這三種物件的比較方法呢?
關於hashCode() 為什麼會設計hashCode()方法? hashCode()方法返回的就是一個數值,我們稱之為hashCode吧。從方法的名稱上就可以看出,其目的是生成一個hash碼。hash碼的主要用途就是在對物件進行雜湊的時候作為key輸入,據此很容易推斷出,我們需要每個物件的ha
java物件的4種比較方法
概述 在java中,存在4種物件(含基礎資料型別)的比較方式:==、equals、compareTo和compare。以及兩種比較策略:引用比較和值比較。具體如下表所示。 比較 基本資料型別 物件 ==、!= 值比較 引用
Java常用類庫--Arrays、比較器(comparable、Comparator)
1、Arrays類 Arrays表示陣列的操作類,直接定義在java.util包中 import java.util.* ; public class ArraysDemo{ public st
幾種任務排程的 Java 實現方法與比較
簡介: 綜觀目前的 Web 應用,多數應用都具備任務排程的功能。本文由淺入深介紹了幾種任務排程的 Java 實現方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,並對其優缺點進行比較,目的在於給需要開發任務排程的程式設計師提供
Java中正則表示式常用方法彙總
眾所周知,在程式開發中,難免會遇到需要匹配、查詢、替換、判斷字串的情況發生,而這些情況有時又比較複雜,如果用純編碼方式解決,往往會浪費程式設計師的時間及精力。因此,學習及使用正則表示式,便成了解決這一矛盾的主要手段。 大 家都知道,正則表示式是一種可以用於模式匹配和替換的規
JAVA比較日期前後的方法
在java中要比較日期的前後 程式碼如下 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); S
Java比較兩個時間大小方法記錄
@GetMapping("/compare/time/{start}/{end}") public static Integer compareTime(@PathVariable String start, @PathVariable String end) throws
Java靜態方法 與 非靜態方法(實例方法)的區別
外部類 允許 靜態成員 靜態 成員 訪問 靜態成員變量 ava 實例方法 靜態方法與實例方法的異同 1.在外部類 調用靜態方法時,有兩種方式:(1)類名.靜態方法()(2)類的對象.靜態方法() ;也就是說調用靜態方法時可以不用創建對象。 調用實例
Java Split()方法按點(.)切分註意細節
absolut int abs println clip nts image content con 按點(.)切分,必須要註意轉義!如:split("\\.")。 例子: [java] view plain copy print? public clas
java static 方法與普通方法區別
對象 static 方法區 修改 需要 總結 資源 其他 一個 static 方法不需要實例化,靜態方法在JVM剛加載的時候就編譯過了.在程序的運行過程中隨時可以調用,不需要去實例化某個對象然後再去調用,可以直接用類名去調用,直到結束釋放內存,且靜態方法只能調用類靜態變量
JAVA 比較兩張圖片的相似度的代碼
awt ace ktr ngs gin min amp exce value 原文:http://www.open-open.com/code/view/1448334323079 import java.awt.image.BufferedImage; import