android double值排序,android根据Double类型数据经纬度算出距离再根据距离实现排序功能...
前言
项目中用到全国的加油站数据加载 并根据经纬度算出距离 然后根据距离从小到大排序
主要是数据类型是Double 这里必须对数据进行封装
实现也不难 这里讲一下自己的实现方法和实现思路
效果图
先来看下 未排序下的效果图
仔细看上图中的距离 是没有排序的 距离都是打乱的 我们的目的是从小到大完成排序。
Double类型数据排序
Collections.sort(mList, new Comparator() {
public int compare(State o1, State o2) {
//这里的数据类型如果是double 会报错
//错误提示:cannot invoke compareTo(double) on the primitive type double
return o1.compareTo(o2);
}
});
double不能直接排序的解决方法
compareTo只适合实现了Comparable的对象类型
// 第一种修改方法:
Collections.sort(mList, new Comparator() {
public int compare(State o1, State o2) {
return new Double(o1).compareTo(new Double(o2));
}
});
}
// 第二种解决方法是:
double distance;//对distance的定义
//修改为:
Double distance;
//distance改为double的包装类Double类型
}
排序代码实现
根据我们拿到的数据 然后对数据做处理 也就是计算 拿到每个Bean里的经纬度
if (homeModelBaseBean.getCode() == SUCCESS) {
//拿到数据
List data = homeModelBaseBean.getData();
//非空判断
if (data != null && data.size() > 0) {
for (int i = 0; i < data.size(); i++) {
//排序接口 实现compare
Collections.sort(data, new Comparator() {
@Override
public int compare(HomeModel o1, HomeModel o2) {
//这里拿到当前经纬度和油站经纬度通过Utils算出每个油站距离当前的距离
//再根据距离实现从近到远的排序
double dis = GetDistanceUtils.getDistance(latLng.longitude,
latLng.latitude, o1.getGasAddressLongitude(),
o1.getGasAddressLatitude());
double dis2 = GetDistanceUtils.getDistance(latLng.longitude,
latLng.latitude,
o2.getGasAddressLongitude(), o2.getGasAddressLatitude());
//打印log看下数据排序
Log.e(TAG, "算出距离为:" + dis);
//这里使用第一种修改方法 new Double类型
//因为这个距离是算出来的 并不是后台返回定义的类型
return new Double(dis).compareTo(dis2);
}
});
}
}
mHomeView.showGasList(data);
} else {
mHomeView.showNetWorkError();
}
Log
排序实现(距离从近到远)
来源:oschina
链接:https://my.oschina.net/u/4274724/blog/4299787
android double值排序,android根据Double类型数据经纬度算出距离再根据距离实现排序功能...相关推荐
- android 有值代码,Android:如何在代码中获取“listPreferredItemHeight”属性的值?
这样做: TypedValue value = new TypedValue(); ((Activity)context).getTheme().resolveAttribute(android.R. ...
- android键值列表,Android Json不规则键值解析与转换
简述 在Android开发的时候,通过网络请求获取后台返回数据与上传数据给后台是十分常见的.有时候,我们会遇到需要解析和传递特殊键值的Json,对于这种情况,引出了本次要讲诉的内容. Json数据解析 ...
- android bean对象,Android GreenDao 保存 JavaBean 或者List JavaBean类型数据
GreenDao 简介 数据库存储数据基本上每个APP都有用到,GreenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案,至于用法这里不再多少,网上有很资料,这里主 ...
- java double转换为string_Java方法将Double转换为String
以下是Java中可用的方法,您可以使用这些方法将Double值转换为String- toString()类Double的方法 此方法返回当前Double对象的String格式.将Double值转换为S ...
- Java中int(Integer)类型与long(Long)类型数据的相互转化
新手开车,先上代码,后边解析! 能看懂代码就不要看解析! PS:命名规范,i代指int类型,l代指long类型,I代指Integer类型,L代指Long类型,2(transferTo): // 首先创 ...
- 用gson得JSON,数值变为double类型 ,去掉double值中的小数位(3.0改为3)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 项目中有个接口的数据是从缓存中读取再组成JSON 格式返出,原本缓存中数据是这样的: 用Gso ...
- android 随机布尔值,在 Android 的某些机型,v1.2.2 v1.2.1 加密会导致 boolean 类型的值丢失的问题...
What happens if you just restart the App? I mean don't do the second step. 09-23 09:24:45.328 6464-6 ...
- 【Android】使用AIDL传递用户自定义类型数据--附完整示例代码
AIDL对Java类型的支持 AIDL支持Java原始数据类型 AIDL支持String和CharSequence AIDL支持传递其他AIDL接口,但你引用的每个AIDL接口都需要一个import语 ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
最新文章
- 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
- GitHub重大更新:在线开发上线,是时候卸载IDE了
- 计算机408考研重点
- 用神经网络解释化学键能 化学键的键能:一个方程组的特征解
- luogu P1519 穿越栅栏 Overfencing
- *【POJ - 3659】Cell Phone Network (树形dp,最小支配集)
- python指定条件分类输出_python基础(二)条件判断、循环、格式化输出
- linux 上传文件 rz命令 提示command not found 解决方法
- 计算机动画制作 教学设计,《设置动画效果》教学设计
- C++中的STL和MFC
- 计蒜客——回文平方数
- 关于vue编译版本引入的问题
- 操作系统实验报告清华大学LAB1
- 疯狂java讲义 如何_[java学习]《疯狂java讲义》
- 信创干部人事档案管理系统单机版 - 人力资源档案管理系统软件
- idea 下载vue 插件
- charles(抓包神器)
- 3 FPGA时序约束理论篇之IO约束
- WOS(六)——导出数据格式及处理
- 短线操盘的10种方法、
热门文章
- opencv中很有趣的仿射变换(Affine Transformation)
- k3s 部署, 使用注意事项
- Echarts数据可视化title标题,开发全解+完美注释
- python计算两张图像的L1和L2损失
- tf.image.crop_and_resize()使用
- ubuntu 设置静态ip,但显示scope global secondary ens33
- C++11Mutex(互斥锁)详解
- 第一个ExtJS练习(添加用户面板)
- 转载:网关的概念以及形象的比喻
- 《数据结构与算法分析:C语言描述》复习——第六章“排序”——插入排序