java版本號排序
基於1,1.1,1.1.1,1.2,1.2.1,2,2.1的排序
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; /** * <h1>.</h1><BR/> * * @author cyj - 2014-10-26 */ public class MapComparator implements Comparator<Map<String, Object>> { /** * 排序用到的key */ private String key; public MapComparator(String key) { this.key = key; } @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { // 獲取比較的字串 String compareValue1 = (String) o1.get(key); String compareValue2 = (String) o2.get(key); String[] valueSplit1 = compareValue1.split("[.]"); String[] valueSplit2 = compareValue2.split("[.]"); int minLength = valueSplit1.length; if (minLength > valueSplit2.length) { minLength = valueSplit2.length; } for (int i = 0; i < minLength; i++) { int value1 = Integer.parseInt(valueSplit1[i]); int value2 = Integer.parseInt(valueSplit2[i]); if(value1 > value2){ return 1; }else if(value1 < value2){ return -1; } } return valueSplit1.length - valueSplit2.length; } public static void main(String[] args) { List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Random random = new Random(); for(int i = 0;i<10;i++){ Map<String,Object> map = new HashMap<String, Object>(); int lenght = random.nextInt(5) + 2; String compareKey = null; for(int j = 0 ;j<lenght;j++){ if(compareKey == null){ compareKey = "" + random.nextInt(3); }else{ compareKey += "." + random.nextInt(3); } } map.put("compareKey", compareKey); list.add(map); } System.out.println("排序之前"); printMap(list); Collections.sort(list, new MapComparator("compareKey")); System.out.println("\n排序之後"); printMap(list); } public static void printMap(List<Map<String,Object>> list){ for(int i=0;i<list.size();i++){ System.out.println(list.get(i).get("compareKey") ); } } }
程式執行結果:
排序之前
2.1.0
1.0.0.1.1
1.0.2
0.1.1
0.0.2
1.2.0
1.1.1.2.0.2
2.2.2.2.2.1
1.2
2.1.2
排序之後
0.0.2
0.1.1
1.0.0.1.1
1.0.2
1.1.1.2.0.2
1.2
1.2.0
2.1.0
2.1.2
2.2.2.2.2.1
相關推薦
java版本號排序
基於1,1.1,1.1.1,1.2,1.2.1,2,2.1的排序 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util
演算法練習06 版本號排序
題目(2018-11-21) 有一個專案,由於多人維護,導致版本號規則,例如: const version = ['1.45.0', '1.5', '6', '3.3.3.3.3'] 現在需要對版本號進行從小到大排序,注意: 1.45.0是大於1.5的 實現 直接用
Java 版本號比較
字串切割判斷 /** * 字串切割比較 * @param v1 * @param v2 * @return 1 V1 >= V2 2 V1 &
JAVA 獲取java版本號
JAVA 獲取系統配置資訊重點內容 System.out.println(“java版本號:” + System.getProperty(“java.version”)); // java版本號 System.out.println(“Jav
版本號對比方案及參考代碼(Objective-C,Java,JavaScript)
true eap bstr math 當前 function loop sse 版本號 常用版本號 如 2.0.1 與 2.0.2 相比 2.0.2是比2.0.1要新的 那麽該如何對這個版本號進行對比 這裏有一個比較簡單的實現方案 2.0.1 這種格式可以拆分為多個部分
Java發展的時間表。 (版本號 名稱 中文名 發布日期)
時間日期 jtable beta 編譯 5.0 企業版 evel 簡化 正版 JDK 1.1.4 Sparkler 寶石 1997-09-12 JDK 1.1.5 Pumpkin 南瓜 1997-12-13 JDK 1.1.6 Abigail 阿比蓋爾--女子名 199
微信企業號回調模式配置解說 Java Servlet+Struts2版本號 echostr校驗失敗解決
del com crypt atp org use ase http err 微信企業號回調模式配置解說 Java Servlet+Struts2版本號
安裝多個版本號jdk後java -version不改變的問題解決
art 顯示 pad setting shee css clip ssi -s 1、問題 比方先安裝了jdk7後,再安裝jdk6,java -version就是顯示
java比較客戶端版本號
integer 大於 index 代碼 服務器端 ray com 為什麽不能 java 參考文章:http://www.jb51.net/article/70317.htm 關鍵點 為什麽不能使用String.compareTo方法來比較客戶端版本號?
java 判斷是否大於指定版本號
ger class oop eat public result val split util public boolean is_version_great_than(String version) { boolean result = false
使用java實現快速排序(我認為是最簡單最容易理解的版本)
一切都在程式碼和註釋之中。複製貼上就能跑,邊跑邊看才是最愉快的。 所以,話不多說,放碼過來。 public class QuickSort { public static void main(String[] args) { int x[]={6,1,2,7,9,1
java專案打包加版本號清理快取二
一篇我們主要介紹了在程式碼中怎麼處理可以做到清理快取的效果,這篇我們說說在打包的時候加版本號,意義上就是給靜態資源加版本號,意思我們每次打包的靜態頁面都是一個全新的頁面,通過這種方式來達到清理快取的目的;為達目標不擇手段嗎! 1.maven專案打包增加版本號,利用maven外掛:com.goo
java使用apk-parser解析apk,獲取manifest中的版本號及自定義變數
apk-parser地址: https://github.com/hsiafan/apk-parser 1.獲取版本號等資訊: try (ApkFile apkFile = new ApkFile(new File(filePath))) { ApkMeta apkMeta
Java - Class版本號和UnsupportedClassVersionError
問題分析 Java是向下相容的,每一個jdk版本都有對應的class版本號(major + minor version numbers);如果用低版本的jvm去載入高版本jdk編譯的類,就會報錯:java.lang.UnsupportedClassVersionError 原始碼中關於這個Unsuppor
Java實現比較APP版本號大小
實現程式碼如下: /** * 比較APP版本號的大小 * <p> * 1、前者大則返回一個正數 * 2、後者大返回一個負數 * 3、相等則返回0 * * @param version1 app
如何在Linux查詢Nginx, Tomcat, Apache, PHP, Java的版本號?
1、查詢Nginx版本號: # cd /usr/local/nginx/sbin # ./nginx -v nginx version: nginx/1.11.3 2、查詢Tomcat版本號: # cd /home/server/tomcat-dfs/bin # ./version.sh Using
檢視java class檔案的編譯版本號
用maven做專案依賴管理,依賴了一個其他組開發的一個基礎包。結果,在使用maven進行編譯打包的時候,報了錯: Unsupported major.minor version 51.0。 注:我本機上目前只安裝了 jdk 1.8 使用Eclispse自帶的
微信公眾號支付java版本
回撥函式 @RequestMapping("/toPay") public String toPay(HttpServletRequest request, HttpServletResponse response, Model model){ System.out.print
Java class檔案的JDK編譯版本號
比如用UltraEdit(UE)開啟class檔案(如果是在linux,比如Ubuntu下,用$hexdump -C Test.class),你會看到諸如第一行是: 00000000h: CA FE BA BE00 00 32 00 A9 07 00 02 01 00 前四個位元組為固定的 CA FE B
史上最詳細的氣泡排序演算法解析( 程式碼Java版本)
1.問題引入:什麼是氣泡排序?(1)官方解讀:氣泡排序(Bubble Sort),是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來