元素不添加到arraylist

时间:2014-10-05 20:20:35

标签: java arraylist

我最近开始使用ArrayLists而不是Arrays,所以我编写了一个简单的程序,它应该将数组中的所有正整数更改为1,负数更改为-1,所有0都更改为0。 现在我不知道为什么,但我的代码不起作用,请问我指向正确的方向,因为我还没有使用过ArrayLists吗? 这是我的代码:

private static ArrayList<Integer> ja = new ArrayList<Integer>();
private static String j = null;
private static void keskmine() {
    System.out.println("Please enter an array of integers:");
    j = sc.nextLine();
    ArrayList<String> bitsj = new ArrayList<String>(Arrays.asList(j.split(",")));
    for(int i = 0; i < bitsj.size(); i++){
        ja.add(Integer.parseInt(bitsj.get(i).trim()));
    }
    for(int i = 0; i < ja.size(); i++){

        if(ja.get(i) > 0){
            ja.set(i, 1);
        }if(ja.get(i) < 0){
            ja.set(i, -1);
        }else{
            ja.set(i, 0);
        }
    }
    System.out.println(ja);
}

提前谢谢!

编辑:我很抱歉,我忘了张贴一半的意图! 例如,如果我给我的程序一个输入&#34; 1,1,1&#34;它输出0,0,0但它应输出&#34; 1,1,1和#34;无论我输入什么,它都会这样做。

1 个答案:

答案 0 :(得分:2)

在此检查中

if(ja.get(i) > 0){
    ja.set(i, 1);
}
if(ja.get(i) < 0){
     ja.set(i, -1);
}else{
    ja.set(i, 0);
}

缺少其他东西。 纠正它

if(ja.get(i) > 0){
    ja.set(i, 1);
} else if(ja.get(i) < 0){
     ja.set(i, -1);
} else {
    ja.set(i, 0);
}



您目前首先检查,如果该数字大于0.之后您始终检查,如果该数字小于0。

例如:你有42:
检查是否&gt; 0 =&gt;输入设为1
之后:检查是否&lt; 0 =&gt; false,所以设置为0