【发布时间】:2018-09-24 13:33:10
【问题描述】:
我有一个布尔值列表,我想将其转换为 Byte [] 数组。我尝试将 List 转换为 byte[] 数组,但我有一个错误。这是我的代码
List<Boolean> list = model.getBooleanData();
boolean[] inputSleep = new boolean[list.size()];
byte[] toReturn = new byte[inputSleep.length / 8];
for (int entry = 0; entry < toReturn.length; entry++) {
for (int bit = 0; bit < 8; bit++) {
if (inputSleep[entry * 8 + bit]) {
toReturn[entry] |= (128 >> bit);
}
}
}
我得到所有布尔值并检查但我尝试将所有布尔值都设为 false。感谢您的帮助。如何正确地将 List 转换为 byte[] 数组?
【问题讨论】:
-
boolean[] inputSleep- 所有值都初始化为false- 你永远不会用来自list的布尔数据填充数组。让model.getBooleanData()直接返回boolean[]-List毫无意义。 -
但我从模型中填充列表并检查模型是否填充为布尔值。然后我检查了 inputSleep 所有值 False。
-
这就是我要说的,为什么?
-
你能确定8分为列表长度吗?否则列表元素将丢失。
-
噢,对不起,我现在明白了
标签: java android arrays type-conversion boolean-logic