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(任务设备)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值