需求如下:
有一些设备,设备有编号(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(任务设备)