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

问题描述

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

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

怎么在android 类之间传值(集合)? 利用接口

问题描述 怎么在android 类之间传值(集合)? 利用接口 求大神给个小demo,感激不尽,接口传值问题弄不清楚.......................... 解决方案 从你提的问题,能看出你是初学者.在Android端传值,包括一般的java的对象间传值方式,这个就不讲了. 接着是activity.broadcast.service之间的传值,通过intent,可以加个bundle(你传个string,里面也是打包成bundle),你要传集合,可以用里面的array,如果没有,那就自

编写高质量代码改善C#程序的建议:泛型集合、选择集合和集合的安全

前言 软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行. 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议20.使用泛型集合来替代非泛型集合 建议21.选择正确的集合 建议22.确保集合的线性安全 建议

redis基本命令之二:集合、有序集合

5 集合类型 5.1 增加/删除元素 Sad key number [number -] Srem key number [number -] Sadd命令用来向集合中增加一个或多个元素,如果键不存在则会自动创建.因此在一个集合中不能有相同的元素,所以如果要加入的元素已经存在于集合中就会忽略这个元素. 5.2 获取集合中的所有元素 smembers key smembers命令会返回集合中的所有元素 5.3判断元素是否在集合中 Sismember key number 判断一个元素是否在集合中是

编写高质量代码改善C#程序的157个建议[泛型集合、选择集合、集合的安全]

原文:编写高质量代码改善C#程序的157个建议[泛型集合.选择集合.集合的安全] 前言   软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行. 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议20.使用

使用IP地址在两个android手机之间如何通讯?

问题描述 使用IP地址在两个android手机之间如何通讯? 3g连接的基础上,能否可以分别查询200个android手机的IP地址? 能否直接使用IP 地址进行TCP通信吗? 希望大家给点建议,谢谢! 解决方案 直接P2P是不行的,因为移动上网时,是先连到运营商(如联通)的大局域网再通过网关转到公网,手机分配的IP是10.xx.xx.xx,并不是公网IP,你从外面查手机的IP都是运营商网关IP.而且两台手机也不一定在同一局域网段,也就不能保证直接互联能一定成功.解决办法还是像QQ一样,搞个服务

(教学思路 C#集合一)集合的概述、动态数组ArrayList

这一节我们来学习集合,什么是集合呢? 集合就如同数组,用来存储和管理一组特定类型的数据对象,除了基本的数据处理功能,集合直 接提供了各种数据结构及算法的实现,如队列.链表.排序等,可以让你轻易地完成复杂的数据操作.在使用数组和集合时要先加入 system.collections命名空间,它提供了支持各种类型集合的接口及类.集合本身上也是一种类型,基本上可以将其作为用来存储一组数据对 象的容器,由于c#面向对象的特性,管理数据对象的集合同样被实现成为对象,而存储在集合中的数据对象则被称为集合元素.

android活动之间切换问题

问题描述 android活动之间切换问题 我准备做一个进入app之后的一个动画,我把这个动画放在Mainactivity中然后让动画播放几秒钟后自动进入第二个activity,但是每次我打开app时都会直接进入第二个activity不会首先播放动画,然后当我返回一下时才会播放动画,请问为什么这样啊! 代码如下: import android.R.integer; import android.app.Activity; import android.content.Intent; import

传感器-两部Android手机之间通信方式

问题描述 两部Android手机之间通信方式 1.两部Android手机之间建立通信使用哪种方式较好? 2.建立通信之后,如何从其中一部手机获取另外一部手机的传感器信息? 解决方案 使用socket通讯 解决方案二: socket通信,蓝牙通信 解决方案三: Android组件之间的通信方式 解决方案四: BlueTooth或者IM

Android 开发之旅:短信的收发及在android模拟器之间实践(二)

引言 前面我们介绍都只是如何发送SMS消息,接下来我们介绍如何接收SMS消息,及另一种发短信的方式并增强为可以发生图片等,最后介绍一下emulator工具.本文的主要内容如下: 1~5见Android 开发之旅:短信的收发及在android模拟器之间实践(一) 6.温故知新之Intent 7.准备工作:SmsMessage类 8.SMS接收程序 9.另一种发送短信的方式:使用Intent 10.增强SMS为MMS 6.温故知新之Intent 此系列前面简单地接受过意图(Intent),这里再次简