梅明子 2015-11-27 03:02 采纳率: 100%
浏览 2215
已采纳

Android 集合之间的比较以及排序算法相关问题

下面这个方法是用来比较的,相同的对象就放到同一个集合中,不相同的就新建一个。现在下面我写的判断那里每次比较都只能跟上一个进行比较,并不是和全部进行比较。所以想请教一下前辈们还有什么更好的办法吗?排序吗?怎么写?

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

2条回答 默认 最新

  • fangyaoyu 2015-11-27 07:14
    关注

    你可以先使用Hash>来实现,不过需要重写ParentEntity的hasCode方法(因为你的判断是经纬度的范围)。最后把HashMap转换成你需要的数据结构

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?