Java如何检查arraylist对象并使其成为真/假?

时间:2015-10-24 00:40:40

标签: java arraylist

程序执行一项操作,具体取决于用户输入,它会删除一个arraylist对象,并会询问您是否要删除另一个对象,但是,如果同一个对象尝试删除,我需要程序知道并输出'这样的对象不存在',例如'remove“3”',然后再删除“3”,程序输出的“3”不存在,问题是我不知道如何实现它,我所拥有的也没有做多少。我的理论是你必须使用布尔来检查arraylist对象是否在那里,如果是:如果不是:删除它:输出“not there”。 这就是我所拥有的:

String[] id1 = { "1", "studentA" };
ArrayList<String> jim = new ArrayList<String>(Arrays.asList(id1));

System.out.println("would you like to remove an id? if so type in "
        + "the id number, otherwise type: no");
Scanner sc = new Scanner(System.in);
String i = sc.next();

int position = -1;
position = jim.indexOf(sc) - 1;
if (position == -1) {
    System.out.println("not found in list");
} else {
    System.out.println("found and removed");
    jim.remove(i);

}

System.out
        .println("would you like to remove another id? if so type in "
                + "the id number, otherwise type: no");
Scanner sc2 = new Scanner(System.in);
String j = sc.next();

int position2 = -1;
position2 = jim.indexOf(sc) - 1;
if (position2 == -1) {
    System.out.println("not found in list");
} else {
    System.out.println("found and removed");
    jim.remove(j);
}

3 个答案:

答案 0 :(得分:0)

我建议使用public boolean remove(Object o)如果元素分别与ArrayList分开,则返回true或false。您可以将某个布尔变量设置为等于该值,并使用if语句输出所需的响应。

答案 1 :(得分:0)

boolean contains(Object o)将检查ArrayList是否包含该对象,您可以扫描列表并检查它是否存在。您还可以使用E get(int index)进行扫描,并使用循环检查字符串是否相互相等。

答案 2 :(得分:0)

如果您希望程序继续询问用户输入,则需要一个循环,例如while-loop,只有在用户输入no时才会终止。除此之外,您只需使用List.remove()删除元素,并检查返回值(true如果项目在列表中并被删除),以便向用户提供正确的反馈:

String[] elements = { "1", "studentA" };
ArrayList<String> list = new ArrayList<String>(Arrays.asList(elements));
Scanner sc = new Scanner(System.in);

while (true) {
    System.out.println("would you like to remove an id? if so type in "
            + "the id, otherwise type: no");        
    String input = sc.next();

    if ("no".equalsIgnoreCase(input)) {
        break; // exit the loop
    }

    if (list.remove(input)) {
        System.out.println("found and removed");
    } else {
        System.out.println("not found in list");
    }
}