数组搜索和计数

时间:2016-04-12 13:18:19

标签: java arrays search methods

我正在开发一个程序,它将在我的数组中搜索我的单个随机#出现的次数,然后打印多少次或找不到它。我一直在研究如何做到这一点,似乎无法弄明白。这是我迄今为止所做的事情,并提前感谢。

我的代码:

import java.util.Scanner;
import java.util.Random;
class Main {
  public static final Random RND_GEN = new Random();

  public void createNum(int[] randomNumbers) {  
    for (int i = 0; i < randomNumbers.length; i++) {
      randomNumbers[i] = RND_GEN.nextInt(10) + 1;
    }
    for (int i = 0; i < 1; i++) {
      randomNumbers[i] = RND_GEN.nextInt(10) + 1;
    }
  } 

  public void printNum(int[] randomNumbers){
    for (int i = 0; i < randomNumbers.length; i++) {
      System.out.println("Number " + i + " : " + randomNumbers[i]);
    }
    for (int i = 0; i < 1; i++) {
      System.out.println("Single Random # " + i + " : " + randomNumbers[i]);
    }
  }


  public void run() {
    Scanner inputReader = new Scanner(System.in);
    int x = 1;
    do {
      int[] number = new int[20];
      createNum(number);
      printNum(number);
      System.out.print("Restart Program?, Enter 1 for YES, 2 for NO: ");            
      x = inputReader.nextInt();
    } while (x == 1);
  }

  public static void main(String[] args) {
    Main go = new Main();
    go.run();
  }
}

3 个答案:

答案 0 :(得分:0)

127 > x > -127

答案 1 :(得分:0)

这是计算int数组中元素的方法:

public int countOccurrences(int[] array, int needle) {
    int count = 0;
    for (int index = 0; index < array.length; array[++index] == needle ? count++ : count);
    return count;
}

答案 2 :(得分:0)

好像这是您在此处发布的其他问题的搜索部分:Random number and array search

在那里,建议您学习线性搜索和二分查找。如果你这样做,将线性搜索转换为代码就不会太难(二进制搜索不会在这里帮助你)。您只需循环遍历数组(您的代码证明您知道如何执行此操作)并检查每个值是否等于您正在搜索的值。当然,如果你想计算命中数,你必须在每次匹配时增加一个计数器。