问题描述
- 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转换成你需要的数据结构
解决方案二:
你确定你这个代码不会报空指针异常?
时间: 2024-11-20 02:10:12