梅明子
2015-11-27 03:02
采纳率: 91.9%
浏览 2.2k

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转换成你需要的数据结构

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • sinat_31535993 2015-11-27 03:17

    你确定你这个代码不会报空指针异常?

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题