2015-06-09 38 views
-4

我有布尔数组,我想将它们更改为双数组。如果一个位置是真的,那么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]; 

回答

1

您可以使用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)。在这种情况下,[i]可能为空!所以你应该检查这个地方以避免异常。

1

我不知道你想什么,以实现与您现有的代码,但这里有一个例子:

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; 
    } 
} 
相关问题