在带有用户输入的 arrayList 中不止一次

Exi*_*xit 3 java arraylist data-structures

在下面的代码中,我需要检查一个数字是否在ArrayList. 用户输入一个号码进行查询,如果存在array且不止一个则显示“出现不止一次”。我一直在尝试这样做,但我不知道该怎么做。

这是main课程:

    ArrayList<Integer> list = new ArrayList<>();
    list.add(3);
    list.add(2);
    list.add(7);
    list.add(2);

    System.out.println("Type a number: ");
    int number = Integer.parseInt(sc.nextLine());
    if (Metodos.moreThanOne(list, number)) {
        System.out.println(number + " appears more than once.");
    } else {
        System.out.println(number + " does not appear more than once.");
    }
Run Code Online (Sandbox Code Playgroud)

这是方法:

public static boolean moreThanOne(ArrayList<Integer> list, int number) {
    for (Integer in : list) {
        if (list.contains(number) && in==in) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

Dmi*_*kin 5

您可以使用此代码:

if (list.lastIndexOf(element) != list.indexOf(element)) {
  return true; // you have at least two numbers
} else {
  return false; // element is not exist or you have only one element
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么不直接这个?`返回 list.lastIndexOf(element) != list.indexOf(element);` (4认同)