如何将布尔数组更改为双数组
How to change Boolean array to double array
我有布尔数组,我想将它们更改为双精度数组。如果位置为真,则 double 为 1,否则设置为 0。我该怎么做?
我的布尔数组:
Boolean [] a = new Boolean [10];
int i = 2;
for(int x = 1; x < 7; x=x+i){
String name = "b" + String.valueOf(x);
a [x] = shared.getBoolean(name, false);}
我的双数组:
double [] r = new double[10];
我不知道你想用你当前的代码实现什么,但这里有一个例子:
Boolean [] a = new Boolean[10];
//fill the array a
double [] r = new double[10];
for(int x = 0; x < 10; x++){
if(a[x]){
r[x] = 1.0;
}
else{
r[x] = 0.0;
}
}
您可以使用for循环再次填充双数组:
Boolean [] a = new Boolean [10];
double [] r = new double[10];
for(int i=0; i<a.length; i++) {
if(a[i] != null && a[i])
r[i] = 1d;
else
r[i] = 0d;
}
如您所见,我也在检查 Boolean a[i] != null。
这是因为您正在使用数据类型布尔值的 Wrapper-Class 布尔值(大写 B)。在这种情况下,a[i] 可能为空!所以你应该在某处检查这个以避免异常。
我有布尔数组,我想将它们更改为双精度数组。如果位置为真,则 double 为 1,否则设置为 0。我该怎么做?
我的布尔数组:
Boolean [] a = new Boolean [10];
int i = 2;
for(int x = 1; x < 7; x=x+i){
String name = "b" + String.valueOf(x);
a [x] = shared.getBoolean(name, false);}
我的双数组:
double [] r = new double[10];
我不知道你想用你当前的代码实现什么,但这里有一个例子:
Boolean [] a = new Boolean[10];
//fill the array a
double [] r = new double[10];
for(int x = 0; x < 10; x++){
if(a[x]){
r[x] = 1.0;
}
else{
r[x] = 0.0;
}
}
您可以使用for循环再次填充双数组:
Boolean [] a = new Boolean [10];
double [] r = new double[10];
for(int i=0; i<a.length; i++) {
if(a[i] != null && a[i])
r[i] = 1d;
else
r[i] = 0d;
}
如您所见,我也在检查 Boolean a[i] != null。 这是因为您正在使用数据类型布尔值的 Wrapper-Class 布尔值(大写 B)。在这种情况下,a[i] 可能为空!所以你应该在某处检查这个以避免异常。