collections-Android Collections排序相关问题(难道就没人会了吗???)

问题描述

Android Collections排序相关问题(难道就没人会了吗???)

#下面代码Collections中如何根据照片的经纬度来进行排序?#

    /**
     * 按照地点进行分组
     * @param context
     * @param list
     * @return
     */
    public static List<GroupEntity> setAddressOrder(Context context, List<ParentEntity> list) {
        if (list == null || list.isEmpty()) {
            return null;
        }

        //排序前
        for (int i = 0; i < list.size(); i++) {
            String address = LocationUtil.queryLatLongItudeLocation(context,
                    list.get(i).getLatitude(), list.get(i).getLongitude());
            if(address != null){
                Log.e("===>>>", address);
            }
        }

        Collections.sort(list, new Comparator<ParentEntity>() {
            @Override
            public int compare(ParentEntity lhs, ParentEntity rhs) {
                if(1 < Math.abs(lhs.getLatitude() - rhs.getLatitude())
                        && 1 < Math.abs(lhs.getLongitude() - rhs.getLongitude())){
                    return 2;
                }else{
                    return 0;
                }
            }
        });

        //排序后
        for (int i = 0; i < list.size(); i++) {
            String address = LocationUtil.queryLatLongItudeLocation(context,
                    list.get(i).getLatitude(), list.get(i).getLongitude());
            if(address != null){
                Log.e("===>>>", address);
            }
        }

        List<GroupEntity> entlist = new ArrayList<GroupEntity>();
//      GroupEntity group = null;//用来存储数据
//      for (int i = 0; i < list.size(); i++) {
//          ParentEntity entity = list.get(i);
//
//          if (group == null
//                  || 1 < Math.abs(group.latitude - entity.getLatitude())
//                  && 1 < Math.abs(group.longitude - entity.getLongitude())) {
//              group = new GroupEntity();//不相同新建放入
//              group.latitude = entity.getLatitude();
//              group.longitude = entity.getLongitude();
//              entlist.add(group);
//          }
//          group.list.add(entity);
//      }
        return entlist;
    }

解决方案

自己解决!!!

    /**
     * 按照地点进行分组
     *
     * @param context
     * @param list
     * @return
     */
    public static List<GroupEntity> setAddressOrder(Context context,
            List<ParentEntity> list) {
        if (list == null || list.isEmpty()) {
            return null;
        }
        List<ParentEntity> temp = new ArrayList<ParentEntity>(list);
        List<GroupEntity> result = new ArrayList<GroupEntity>();
        while (!temp.isEmpty()) {
            GroupEntity ge = new GroupEntity(temp.remove(0));
            for (ParentEntity e : temp) {
                if (0.5 > Math.abs(ge.latitude - e.getLatitude())
                        && 0.5 > Math.abs(ge.longitude - e.getLongitude())) {
                    ge.list.add(e);
                }
            }
            temp.removeAll(ge.list);
            result.add(ge);
        }
        return result;
    }
时间: 2024-08-29 11:41:54

collections-Android Collections排序相关问题(难道就没人会了吗???)的相关文章

io文件-Android 移动文件相关问题!急!!!

问题描述 Android 移动文件相关问题!急!!! 上午开始问的问题了,难道就没人会了吗?为什么我这个方法移动不了?代码是正常执行的,但是图片却没移动,而且要移动的那个图片也变成空的了. /** * 移动至指定文件夹 * @param path 图片源完整路径 * @param newPath 目标文件夹路径 * @param name 图片名称(例如:aaa.jpg) * @return */ public static boolean moveFile(String path, Strin

突然发现有人翻译了Android开发的相关开发文档,而且翻译得很好,推荐下

突然发现有人翻译了Android开发的相关开发文档,而且翻译得很好,推荐下   http://wiki.eoeandroid.com/Android_Training http://wiki.eoeandroid.com/Android_API_Guides http://wiki.eoeandroid.com/Android_Design http://wiki.eoeandroid.com/Android_Reference http://wiki.eoeandroid.com/Androi

统计图-android AChartEngine圆环相关属性,求大神帮忙

问题描述 android AChartEngine圆环相关属性,求大神帮忙 一:想将圆环半径缩小,用renderer.setScale(1.2f)的话还是一样粗,想变细 二:这边还有一个圆点,标题去掉了,但点留着,想去掉,有谁做过吗?或者用别的什么办法能够实现带标题的圆环图? 解决方案 google code上有例子 http://code.google.com/p/achartengine/ 解决方案二: 注意需要代理才能访问. 解决方案三: 你好,很幸运刚好看到你提这个问题,因为我有个图表跟

数据-Android甘特图相关问题,求助

问题描述 Android甘特图相关问题,求助 数据已经给出,怎么由给出的数据在Android上画出画出甘特图,基本思路是什么?有什么可用的第三方.谢谢各位了 解决方案 你去github上搜,肯定有 解决方案二: 你先学着怎么画几条曲线吧,甘特图相对复杂多,包括各种元素,而且每个元素都是可以进行交互的,以你现在的状态肯定是画不出来,搜不到代码,可以搜一些关于画图的,学习一下怎么绘制稍微复杂的图形元素

android xml图形相关问题

问题描述 android xml图形相关问题 下面这种xml定义的图形是什么样的?完全看不懂了!还有就是这些在代码中调用的时候,怎样把它们换成是直接切好的图片来绘制,而不是用这种方式来弄的.有源码,哪位愿意帮我修改的?谢谢! <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="xxxxxxxxxxxxxx" > <item> <

android 的视频相关问题

问题描述 android 的视频相关问题 在做一个项目 需要录制视频 我现在可以录视频 但是怎么从系统选取后显示在主页面上的框框里, 还有 那个框框是videoview吗 点击能播放更好 网上找不到相应的资料 跪求大神赐教! 解决方案 Android 视频开发相关android 视频通话相关 解决方案二: 可以用surfaceview 播放视频,很简单的.找个例子看看 解决方案三: videoview可以播放视频,MediaController可以用来控制如播放暂停

Android 控制wifi 相关操作实例_Android

Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过多的控制(当成功连接WIFI后,就可以直接通过IP在WIFI设备之间进行通信了),一般只需要控制打开或关闭WIFI以及获得一些与WIFI相关的信息(例如,MAC地址.IP等). 如果读者的Android手机有WIFI功能,可以在手机上测试本节的例子.要注意的是,WIFI功能不能在Android模拟器

Android 控制wifi 相关操作实例

Android 控制WIFI相关操作 WIFI的全称是Wireless Fidelity,又称802.11b标准,是一种高速的无线通信协议,传输速度可以达到11Mb/s. 实际上,对WIFI并不需要过多的控制(当成功连接WIFI后,就可以直接通过IP在WIFI设备之间进行通信了),一般只需要控制打开或关闭WIFI以及获得一些与WIFI相关的信息(例如,MAC地址.IP等). 如果读者的Android手机有WIFI功能,可以在手机上测试本节的例子.要注意的是,WIFI功能不能在Android模拟器

设计-Android线程的问题,有经验的人回答一下吧!

问题描述 Android线程的问题,有经验的人回答一下吧! android的线程设计,假如是一个从网络获取图片的线程, 1.我要设计成软件一启动这个线程就启动了,而且一直在运行着,等待用户的指令是否获取图片什么的操作,总之这个线程没到软件退出的时候是不会关闭的,这样设计好吗? 2.还是设计成,这个线程只下载一张或多张图片,下载完成这个线程就停了,如果再需要获取图片,继续new出来. 两种方式都用线程池将线程管理起来. 我想知道你们在设计的时候用的是哪一种方式,或者第一种方法是我的想法有问题,帮忙