java - 元素未添加到数组列表中

标签 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);
}

提前谢谢您!

编辑:我很抱歉,我忘了发布我打算发布的一半! 例如,如果我给程序输入“1, 1, 1”,它会输出 0, 0, 0,但它应该输出“1, 1, 1”,并且它会对我输入的任何内容执行此操作。

最佳答案

在此检查中

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

缺少一个else。 将其更正为

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:
检查是否 > 0 => 条目设置为 1
之后:检查< 0 => false,因此设置为0

关于java - 元素未添加到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206823/

相关文章:

java - 数组中的对数和

java - 在一个 JOptionPane 中显示所有文本,而不是逐行显示多个文本

java - 适配器中的ArrayList?

java - 如何从嵌套的 ArrayList 访问特定元素

android - 使用可序列化发送对象数组列表

java - Olap4j/mysql,如何生成或创建 Cube?

java - 如何在多线程应用程序中存储线程

java - Spring Data JPA 如何传递日期参数

java - 使用 JavaFX 从图像 ArrayList 进行幻灯片放映

java - 尝试修改游戏,以便程序保留未接受的答案列表并在最后打印它们。 (java)