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;
}
}
java 多个设备,锁定先后顺序的更多相关文章
- Java中常用的查找算法——顺序查找和二分查找
Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...
- Java中的查找算法之顺序查找(Sequential Search)
Java中的查找算法之顺序查找(Sequential Search) 神话丿小王子的博客主页 a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数 ...
- Java访问USB设备
最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到 ...
- 统计 iOS 设备锁定、解锁次数-b
今天下了个软件,可以记录手机解锁的次数和使用时间,当然啦,App 必须在后台运行着.当时比较纳闷的是有什么 API 可以接收设备解锁事件或通知的,Google 了下,还真有哎——我是链接:http:/ ...
- Java笔记 #04# 类的初始化顺序补充
参考java中的类的初始化顺序详解 package org.sample; class Bread { Bread() { System.out.println("Bread()" ...
- java反射field和method的顺序问题
最近在有思考到序列化性能优化的问题,关于java反射field和method的顺序问题,这里有详细的讨论http://stackoverflow.com/questions/5001172/java- ...
- Java&&(面试题)初始化顺序总结
1 无继承情况下的Java初始化顺序: class Sample { Sample(String s) { System.out.println(s) ...
- java静态初始化块的执行顺序
先来观察下面的代码 package trr; class Root { static{ System.out.println("Root的静态初始化块"); } { System. ...
- java学习-循环结构-查找算法-顺序查找
今天回顾了简单算法,顺序查找.发现了数组出现重复数字,无法输出第二个位置就跳出循环了. 利用所学知识解决了.放上代码,同时在代码里给大家分享思路. 欢迎大神教导,欢迎指正. ; System.out. ...
- 面试官:Java中线程是按什么顺序执行的?
摘要:Java中多线程并发的执行顺序历来是面试中的重点,掌握Java中线程的执行顺序不仅能够在面试中让你脱颖而出,更能够让你在平时的工作中,迅速定位由于多线程并发问题导致的"诡异" ...
随机推荐
- 带Left Join的SQL语句的执行顺序
基础的SQL执行顺序 SQL语句执行的时候是有一定顺序的.理解这个顺序对SQL的使用和学习有很大的帮助. 1.from 先选择一个表,或者说源头,构成一个结果集. 2.where 然后用where对结 ...
- Windows 7/8/8.1 硬盘安装法实现 ubuntu 14.04 双系统
一.软件准备 1. 下载 Ubuntu 系统镜像:http://www.ubuntu.com/download/desktop/ : 这里使用的是 ubuntu 14.04.1 LTS 64bit 版 ...
- Connect to a Windows PC from Ubuntu via Remote Desktop Connection
http://www.7tutorials.com/connecting-windows-remote-desktop-ubuntu A useful feature of Windows is be ...
- 软件工程 speedsnail 冲刺8
完成任务:蜗牛移动的界面调整,速度调整: 遇到问题: 问题1 进入关卡的开始蜗牛会跳一段距离 解决1 线程延迟3S: 明日任务: 划线实现挡板功能
- DBLINK 创建与小结
1.DBLINK 的作用 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数 ...
- Silverlight中DataPager控件扩展
大家一定遇到这样的情况,想改变一下SL的DataPager的显示信息,比如希望分页控件上显示数据的总数.那么就需要扩展一下DataPager控件即可. 其实扩展DataPager很简单,只要获取到Da ...
- js各种宽高(3)
有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系. JS获取各种宽度.高度的简单介绍: scrollHeig ...
- ThinkPHP之中利用commom被继承控制器控制访问每一个控制器方法都需要验证是否已经登录!
防止 <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controll ...
- python解析xml模块封装代码
在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ...
- php常用函数集锦[备份用的]
1.判断是否正确的日期格式 /** * 是否正确的日期 * * @access public */ private function _isdate($str,$format="Y-m-d ...