HashMap排序是數(shù)據(jù)結(jié)構(gòu)與算法中常見的一種排序算法。本文即以Android平臺(tái)為例來實(shí)現(xiàn)該算法。

十余年的溧水網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整溧水建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“溧水網(wǎng)站設(shè)計(jì)”,“溧水網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
具體代碼如下: public static void main(String[] args) { MapString, Integer map = new HashMapString, Integer(); map.put("lisi", 5); map.put("lisi1", 1); map.put("lisi2", 3); map.put("lisi3", 9); ListMap.EntryString, Integer infoIds = new ArrayListMap.EntryString, Integer( map.entrySet()); System.out.println("--------------排序前--------------"); for (int i = 0; i infoIds.size(); i++) { String id = infoIds.get(i).toString(); System.out.println(id); } // 排序 Collections.sort(infoIds, new ComparatorMap.EntryString, Integer() { public int compare(Map.EntryString, Integer o1, Map.EntryString, Integer o2) { return ( o1.getValue()-o2.getValue()); } }); System.out.println("--------------排序后--------------"); for (int i = 0; i infoIds.size(); i++) { EntryString,Integer ent=infoIds.get(i); System.out.println(ent.getKey()+"="+ent.getValue()); }}
快速排序(Quick Sort)的基本思想:通過一趟排序?qū)⒋庞涗浄指舫瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分的關(guān)鍵字小,則可分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。
快速排序使用分治法來把一個(gè)串(list)分為兩個(gè)子串(sub-lists)。具體算法描述如下:
給個(gè)
全局變量
咯,或者在按鈕的tag上給個(gè)當(dāng)前排序狀態(tài);根據(jù)這個(gè)狀態(tài)就可以實(shí)現(xiàn)了。
時(shí)間排序,方法很多,以下提供幾種常用的方法。
轉(zhuǎn)化成long類型進(jìn)行對(duì)比。
通過Collections.sort()方法進(jìn)行排序。
【原理】
主要是通過把時(shí)間轉(zhuǎn)化成一些可以對(duì)比的數(shù)據(jù)類型進(jìn)行排序?qū)Ρ取?/p>
【詳細(xì)方式或原理】
轉(zhuǎn)化成long類型進(jìn)行對(duì)比
轉(zhuǎn)化代碼:
String?sDt?=?"08/31/2006?21:08:00";??
SimpleDateFormat?sdf=?new?SimpleDateFormat("MM/dd/yyyy?HH:mm:ss");??
Date?dt2?=?sdf.parse(sDt);
//繼續(xù)轉(zhuǎn)換得到秒數(shù)的long型
long?lTime?=?dt2.getTime()?/?1000;
把需要對(duì)比的時(shí)間轉(zhuǎn)化成long類型進(jìn)行對(duì)比。
2.通過Collections.sort()方法進(jìn)行排序
Collections.sort()是java提供的官方排序方式。適合多類型排序。
詳細(xì)的對(duì)比代碼如下:
一般情況下要重寫下Comparator 接口。
import??java.util.Comparator;
public?class??SortComparator?implements?Comparator?{
@Override
public?int?compare(Object?lhs,?Object?rhs)?{
//時(shí)間對(duì)比
num?a?=?(num)?lhs;
num?b?=?(num)?rhs;
return(b.getCount()?-?a.getCount());
}
}
然后在排序的地方進(jìn)行使用
Comparator?comp?=newSortComparator();
Collections.sort(list,comp);
【最后】
如果數(shù)據(jù)類型復(fù)雜推薦使用方法二,如果類型簡單推薦使用方法一。
PinyinComparator接口用來對(duì)ListView中的數(shù)據(jù)根據(jù)A-Z進(jìn)行排序,前面兩個(gè)if判斷主要是將不是以漢字開頭的數(shù)據(jù)放在后面
package com.example.sortlistview;
import java.util.Comparator;
/**
*
* @author xiaanming
*
*/
public class PinyinComparator implements ComparatorSortModel {
public int compare(SortModel o1, SortModel o2) {
//這里主要是用來對(duì)ListView里面的數(shù)據(jù)根據(jù)ABCDEFG...來排序
if (o2.getSortLetters().equals("#")) {
return -1;
} else if (o1.getSortLetters().equals("#")) {
return 1;
} else {
return o1.getSortLetters().compareTo(o2.getSortLetters());
}
}
}
當(dāng)前文章:android排序,android排序?qū)崿F(xiàn)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article30/dsijipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站排名、網(wǎng)站改版、網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)