场景图:

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

java 多个设备,锁定先后顺序的更多相关文章

  1. Java中常用的查找算法——顺序查找和二分查找

    Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...

  2. Java中的查找算法之顺序查找(Sequential Search)

    Java中的查找算法之顺序查找(Sequential Search) 神话丿小王子的博客主页 a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数 ...

  3. Java访问USB设备

    最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到 ...

  4. 统计 iOS 设备锁定、解锁次数-b

    今天下了个软件,可以记录手机解锁的次数和使用时间,当然啦,App 必须在后台运行着.当时比较纳闷的是有什么 API 可以接收设备解锁事件或通知的,Google 了下,还真有哎——我是链接:http:/ ...

  5. Java笔记 #04# 类的初始化顺序补充

    参考java中的类的初始化顺序详解 package org.sample; class Bread { Bread() { System.out.println("Bread()" ...

  6. java反射field和method的顺序问题

    最近在有思考到序列化性能优化的问题,关于java反射field和method的顺序问题,这里有详细的讨论http://stackoverflow.com/questions/5001172/java- ...

  7. Java&amp;&amp;(面试题)初始化顺序总结

    1  无继承情况下的Java初始化顺序: class Sample {       Sample(String s)       {             System.out.println(s) ...

  8. java静态初始化块的执行顺序

    先来观察下面的代码 package trr; class Root { static{ System.out.println("Root的静态初始化块"); } { System. ...

  9. java学习-循环结构-查找算法-顺序查找

    今天回顾了简单算法,顺序查找.发现了数组出现重复数字,无法输出第二个位置就跳出循环了. 利用所学知识解决了.放上代码,同时在代码里给大家分享思路. 欢迎大神教导,欢迎指正. ; System.out. ...

  10. 面试官:Java中线程是按什么顺序执行的?

    摘要:Java中多线程并发的执行顺序历来是面试中的重点,掌握Java中线程的执行顺序不仅能够在面试中让你脱颖而出,更能够让你在平时的工作中,迅速定位由于多线程并发问题导致的"诡异" ...

随机推荐

  1. ASP.NET内置对象二

    (1)Respose对象 利用Response对象输出文字信息: protected void Page_Load(object sender, EventArgs e){ string messag ...

  2. mac 显示隐藏文件夹

    在终端输入   defaults write com.apple.finder AppleShowAllFiles -boolean true;killall Finder即可

  3. [原]hdu2602 Bone Collector (01背包)

    本文出自:http://blog.csdn.net/svitter 题意:典型到不能再典型的01背包.给了我一遍AC的快感. //=================================== ...

  4. JAVA编程思想第一题出现错误

    //: object/E01_DefaultInitialization.java public class E01_DefaultInitialization{ int i ; char c ; p ...

  5. javascript 数组对象与嵌套循环写法

    'use strict' var info=[{"name":"最近想跳河","interst":["历史"," ...

  6. varnish状态引擎2

    如何让varnish支持虚拟主机: if (req.http.host = "www.nihao.com") { } 强制对某资源的请求,不检查缓存: 上图表示以/test1.ht ...

  7. DevExpress 关于 GridView 表格编辑中 点击其他按钮里导致 值未取到处理

    只需要给添加以下代码 在执行其他按钮前调 用一下 就可以了:主要是用来关闭编辑以及更新当前行编辑内容 this.gridControl1.FocusedView.CloseEditor(); this ...

  8. java作用域public ,private ,protected 及不写时的区别(转)

    在说明这四个关键字之前,我想就class之间的关系做一个简单的定 义,对于继承自己的class,base class可以认为他们都是自己的子 女,而对于和自己一个目录下的classes,认为都是自己的 ...

  9. tomcat datasource

    <Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource&qu ...

  10. openSUSE13.1无法打开Yast的安装/移除软件管理软件的解决办法·(未解决,临时方法) 收获:有问题,读日志

    看了日志发现错误在于Ruby,新的YaST是基于Ruby的,而我用rvm安了新版本Ruby,日志里这么出错: 2014-08-22 20:20:57 <3> linux-vfpp.site ...