zoukankan      html  css  js  c++  java
  • java 多个设备,锁定先后顺序

    场景图:

    4台android设备需要被锁定顺序,下次的时候按顺序socket推送数据到这4台不同的内容。当有新的一台机器加入时,如上图的E,则插入到原位置为C的地方。具体代码如下:

    public static ArrayList<DeviceLoginEntity> setDeviceOrder(ArrayList<DeviceLoginEntity> devices,String orderStr)
        {
            if(StringUtil.isNullorEmpty(orderStr) || devices == null || devices.size() <= 0)
            {
                Log.v("DeviceUtil", "if(StringUtil.isNullorEmpty(orderStr) || devices == null || devices.size() > 0)直接返回devices");
                return devices;
            }
            else
            {
                Log.v("setDeviceOrder", "orderStr="+orderStr);
                String[] orderStrArr = orderStr.split("\|");
                //优先将devices中存在的,
                for(int i=0;i<orderStrArr.length;i++)
                {
                    for(int j=0;j<devices.size();j++)
                    {
                        if(orderStrArr[i].equals(devices.get(j).android_id))
                        {
                            devices.get(j).sn = i;
                        }
                    }
                }
                //将里面涉及到devices.get(j).sn=默认值100的情况设置为不在{1,2,3,4}里面的情况
                int flag = -1;
                for(int i=0;i<devices.size();i++)
                {
                    int j = 0;
                    for(j=0;j<devices.size();j++)
                    {
                        if(devices.get(j).sn == i)
                        {break;}
                    }
                    if(j == devices.size())  //说明没有找到
                    {
                        flag = i;
                        break;
                    }
                }
                for(int i=0;i<devices.size();i++)
                {
                    if(devices.get(i).sn == 100 && flag !=-1)
                    {
                        //那么则将该sn置为devices.get(i).sn不存在的数字
                        devices.get(i).sn = flag;
                    }
                }
                //再将devices的sn进行排序,越小越在前面
                Comparator<DeviceLoginEntity> comparator = new Comparator<DeviceLoginEntity>(){  
                        public int compare(DeviceLoginEntity s1, DeviceLoginEntity s2) {
                            if(s1.sn < s2.sn){
                                return -1;
                            }  
                            else
                                return 1;
                        }  
                    };  
                Collections.sort(devices, comparator);//按照属性sn排序,从小到大
    //            for(DeviceLoginEntity en:devices)
    //            {
    //                Log.e("setDeviceOrder", "DeviceLoginEntity="+en.android_id+";sn="+en.sn);
    //            }
                return devices;
            }
        }
  • 相关阅读:
    aaa
    https://download.csdn.net/download/qq_33200967/10679367
    hadoop修改
    xa
    commit
    mybatis
    centos7 部署openstf
    selenium api docs
    Chrome浏览器在自动化中的应用
    selenium自动化测试各浏览器驱动下载地址
  • 原文地址:https://www.cnblogs.com/feijian/p/5048955.html
Copyright © 2011-2022 走看看