(Java)确定特定数字是否在ArrayList中出现两次

时间:2018-08-05 05:21:52

标签: java arraylist

问题是我需要某种方法来找出当要求输入特定数字时数组列表是否包含重复数字。

我得到的基本代码是:

public static boolean moreThanOnce(ArrayList<Integer> list, int number) {
    // write your code here
}

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    ArrayList<Integer> list = new ArrayList<Integer>();

    list.add(3);
    list.add(2);
    list.add(7);
    list.add(2);

    System.out.println("Type a number: ");
    int number = Integer.parseInt(reader.nextLine());
    if (moreThanOnce(list, number)) {
        System.out.println(number + " appears more than once.");
    } else {
        System.out.println(number + " does not appear more than once.");
    }
}

老实说,我在确定前进方向时需要帮助。由于如果对象出现两次或更多次,它需要工作,所以当检测到出现特定数字时,我不能简单地翻转布尔值,因为如果该数字出现3次,它将失败。

我感谢一些有关如何进行的建议。

1 个答案:

答案 0 :(得分:4)

您可以使用Collections.frequency(list, object)在ArrayList中找到出现对象的数量

public static void main(String[] args) {
Scanner reader = new Scanner(System.in);

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

 System.out.println("Type a number: ");
 int number = Integer.parseInt(reader.nextLine());
 if (Collections.frequency(list, number)>1 ) {
      System.out.println(number + " appears more than once.");
 } else {
  System.out.println(number + " does not appear more than once.");
   }
}