数组列表.get不能在java中工作

时间:2016-03-14 10:31:00

标签: java arraylist

我在java中创建二进制到denary转换器。我已经在网上看了,似乎很清楚,从java中的数组列表中获取一个元素是.get。但是当我使用它时,我得到一个错误,“分配的左侧必须是变量”。 以下是我的代码的相关部分

ArrayList binarynew = new ArrayList();

int finished = 0;
int[] numbers = {128,64,32,16,8,4,2,1};
for (int k = 0; k<7; k++){
    if (binarynew.get(k) = '1'){
        finished = finished + numbers[k];
    }
}
System.out.println(finished);

2 个答案:

答案 0 :(得分:0)

要评估Java中的相等性,您必须使用==,而不是=,它用于为变量赋值。所以替换:

if (binarynew.get(k) = '1')

by:

if (binarynew.get(k) == '1') 

请注意,将==与参考变量一起使用时必须小心,它取决于Arraylist的类型。如果适用,请考虑使用equals()

答案 1 :(得分:0)

错误显然是由于分配造成的。使用'=='代替'='。

当List为空时,代码也会抛出IndexOutOfBound异常。 这样做:

List<Integer> binarynew = Arrays.asList(128, 64, 32, 16, 8, 4, 2, 1);
    int finished = 0;
    int[] numbers = {128, 64, 32, 16, 8, 4, 2, 1};
    for (int k = 0; k <= 7; k++) {
        if (binarynew.get(k) == 1) {
            finished = finished + numbers[k];
        }
    }
    System.out.println(finished);