重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
HashMap排序是数据结构与算法中常见的一种排序算法。本文即以Android平台为例来实现该算法。
十余年的溧水网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整溧水建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“溧水网站设计”,“溧水网站推广”以来,每个客户项目都认真落实执行。
具体代码如下: 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)的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:
给个
全局变量
咯,或者在按钮的tag上给个当前排序状态;根据这个状态就可以实现了。
时间排序,方法很多,以下提供几种常用的方法。
转化成long类型进行对比。
通过Collections.sort()方法进行排序。
【原理】
主要是通过把时间转化成一些可以对比的数据类型进行排序对比。
【详细方式或原理】
转化成long类型进行对比
转化代码:
String sDt = "08/31/2006 21:08:00";
SimpleDateFormat sdf= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date dt2 = sdf.parse(sDt);
//继续转换得到秒数的long型
long lTime = dt2.getTime() / 1000;
把需要对比的时间转化成long类型进行对比。
2.通过Collections.sort()方法进行排序
Collections.sort()是java提供的官方排序方式。适合多类型排序。
详细的对比代码如下:
一般情况下要重写下Comparator 接口。
import java.util.Comparator;
public class SortComparator implements Comparator {
@Override
public int compare(Object lhs, Object rhs) {
//时间对比
num a = (num) lhs;
num b = (num) rhs;
return(b.getCount() - a.getCount());
}
}
然后在排序的地方进行使用
Comparator comp =newSortComparator();
Collections.sort(list,comp);
【最后】
如果数据类型复杂推荐使用方法二,如果类型简单推荐使用方法一。
PinyinComparator接口用来对ListView中的数据根据A-Z进行排序,前面两个if判断主要是将不是以汉字开头的数据放在后面
package com.example.sortlistview;
import java.util.Comparator;
/**
*
* @author xiaanming
*
*/
public class PinyinComparator implements ComparatorSortModel {
public int compare(SortModel o1, SortModel o2) {
//这里主要是用来对ListView里面的数据根据ABCDEFG...来排序
if (o2.getSortLetters().equals("#")) {
return -1;
} else if (o1.getSortLetters().equals("#")) {
return 1;
} else {
return o1.getSortLetters().compareTo(o2.getSortLetters());
}
}
}