int和array的转换算法

需求如下:

有一些设备,设备有编号(int)

每种设备有对应图标(src,String类型)


有任务,生产任务由对应设备(int)

且一个任务可对应多个设备


查看任务时要显示所有对应设备的图标

如此,即需由任务设备(int)查找所有设备图标(src)

由于有可能有多个设备,所以有int和array转换问题


public static Integer[] devToInts(int dev, int max) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < count; i++) {
int sign = device & (1 << i);
if (sign != 0) {
list.add(i);
}
}
Integer[] devs = new Integer[list.size()];
return list.toArray(devs);
}

此处dev为任务设备,max为已有设备编号中的最大值(即设备个数)

返回集合,可通过此集合查找对应设备图标


public static int intsToDev(int[] dev) {
int num = 0;
for (int i = 0; i < dev.length; i++) {
num |= (1 << dev[i]);
}
return num;
}

以上方法有数组转换为int(任务设备)


版权声明:本文为u012840054原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。