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;
    }

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

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