Java(android)安卓中的list对象排序
来源:互联网 发布:双11外贸大数据 编辑:程序博客网 时间:2024/05/16 04:36
由于开发百度地图获取到的POI信息需要进行由进到远的排序。所以需要些排序算法。
之前是采用冒泡排序算法
算法如下:(摘自网络)
public class MaoPaoSort {public static void main(String[] args) {try {int mp[] = new int[args.length];for (int i = 0; i < args.length; i++) {mp[i] = Integer.parseInt(args[i]);}for (int i = 0; i < mp.length; i++) {for (int j = 0; j < mp.length; j++) {int temp;if (mp[i] < mp[j]) {temp = mp[j];mp[j] = mp[i];mp[i] = temp;}}}for (int i = 0; i < mp.length; i++) {System.out.print(mp[i] + " ");}
进过搜索发现,原来JAVA工具类已经有排序算法了,遂用之。
Collections类下的sort方法
Sorts the specified list using the specified comparator.
Sorts the specified list in ascending natural order.
两种方法都能实现排序。好了,下面是我们需要排序的对象。
一个用于存放通过百度POI搜索得到的结果的对象
package com.android.so.model;import com.baidu.platform.comapi.basestruct.GeoPoint;public class PoiInfo {private String name;private String address;private boolean detail;private String uid;private String telephone;private GeoPoint pt;private int distance;private int ePoiType;public String getName() {return name;}public String getAddress() {return address;}public String getUid() {return uid;}public String getTelephone() {return telephone;}public GeoPoint getPt() {return pt;}public void setName(String name) {this.name = name;}public void setAddress(String address) {this.address = address;}public void setUid(String uid) {this.uid = uid;}public void setTelephone(String telephone) {this.telephone = telephone;}public void setPt(GeoPoint pt) {this.pt = pt;}public int getePoiType() {return ePoiType;}public void setePoiType(int ePoiType) {this.ePoiType = ePoiType;}public boolean isDetail() {return detail;}public void setDetail(boolean detail) {this.detail = detail;}public int getDistance() {return distance;}public void setDistance(int distance) {this.distance = distance;}}现在我们需要他按照Distance(距离)来进行升序排序。
这里使用方法:
Sorts the specified list using the specified comparator.
我们就需要调用方法:
Collections.sort(poiArrayList, new Comparator<PoiInfo>() {@Overridepublic int compare(PoiInfo lhs, PoiInfo rhs) {return lhs.getDistance() - rhs.getDistance();}});同理如果需要进行降序排序,只需要更改return的结果,如下:
Collections.sort(poiArrayList, new Comparator<PoiInfo>() {@Overridepublic int compare(PoiInfo lhs, PoiInfo rhs) {return rhs.getDistance() - lhs.getDistance();}});
----------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------
以下是另一种方法
Sorts the specified list in ascending natural order.
这种方法需要对象本身实现Comparable<T>接口。
所以PoiInfo类改为:
package com.android.so.model;import com.baidu.platform.comapi.basestruct.GeoPoint;public class PoiInfo implements Comparable<PoiInfo> {private String name;private String address;private boolean detail;private String uid;private String telephone;private GeoPoint pt;private int distance;private int ePoiType;public String getName() {return name;}public String getAddress() {return address;}public String getUid() {return uid;}public String getTelephone() {return telephone;}public GeoPoint getPt() {return pt;}public void setName(String name) {this.name = name;}public void setAddress(String address) {this.address = address;}public void setUid(String uid) {this.uid = uid;}public void setTelephone(String telephone) {this.telephone = telephone;}public void setPt(GeoPoint pt) {this.pt = pt;}public int getePoiType() {return ePoiType;}public void setePoiType(int ePoiType) {this.ePoiType = ePoiType;}public boolean isDetail() {return detail;}public void setDetail(boolean detail) {this.detail = detail;}public int getDistance() {return distance;}public void setDistance(int distance) {this.distance = distance;}@Overridepublic int compareTo(PoiInfo another) {return getDistance() - another.getDistance();}}
实现了compareTo方法,以上是升序排序,如果需要降序排序,将return getDistance() - another.getDistance();改为return another.getDistance() - getDistance();即可。
OK ,那么我们就需要调用代码:
Collections.sort(poiArrayList);
来对list进行排序
OK 上两张对比图
未整理之前:
整理之后的距离:
- Java(android)安卓中的list对象排序
- java List 排序 Collections.sort() 对 List 中的对象排序
- JAVA中对List中的对象排序
- JAVA 对List 中的对象排序
- Java对List中的对象进行排序
- 对java List中的对象进行排序
- java List 对象排序
- Java list 对象 排序
- java 中的List排序
- android对list对象中的string字符串进行排序
- Android List(集合)中的对象以某一个字段排序
- List集合中的对象排序
- Java比较器给List中的对象排序
- java对象排序、中文排序、list排序
- Android Java List 排序
- Android Java List 排序
- Android Java List 排序
- java List对象排序方法
- listview根据列名自动调整列宽教程
- Building a Jabber Client for iOS: XMPP Setup
- 完成端口与高性能服务器程序开发
- SQLite存取二进制数据
- Linux-samba安装
- Java(android)安卓中的list对象排序
- 机器学习入门的书单
- Building a Jabber Client for iOS: Custom Chat View and Emoticons
- 验证TAR Oracle部署
- 【Android學習專題】Android JNI入门实例(Windows+Cygwin+Eclipse)
- c++ 命名空间 namespace
- 环形数组 自动提取起始符和结束符之间的数据
- 音频编码协议介绍
- maven--Cannot complete the install because one or more required items could not be found