查找一个数是否在数组中,如果是,出现了多少次
Find if a number is in an array, and if so, how many times does it appear
问题是有一个 10000 的数组已经为我填满了。将填充数组的数字范围将在 0 到 2500 之间。数组未排序。我的目标是通过一次线性搜索找到1320的存在,第二次线性搜索会检查数字1320出现了多少次。该数组为随机数组。
我已经尝试设置一个线性搜索来检查数组中的数字是否存在。我还尝试设置线性搜索来检查数组存在的次数。都没有用,这是我第一次使用数组,所以我不确定我是否正确地使用它们
public static void main(String[] args) {
// Finish adding Code
boolean DoesItExist;
int iHowMany;
final int SIZE = 10000, ENTRY = 1320;
int[] NumArray = new int[SIZE];
OwenHeading.getHeader("Assignment 9: Arrays.");
fillTheArray(NumArray, SIZE);
System.out.println("DONE");
}
public static void fillTheArray(int[] iTempArray, int SIZE) {
final int RANGE = 2500;
Random rand = new Random();
for (int index = 0; index <= SIZE - 1; index++)
iTempArray[index] = rand.nextInt(RANGE);
}
public static boolean linearSearchOne(int[] iTempArray, int SIZE, int ENTRY) {
boolean TempDoesItExist;
return TempDoesItExist;
}
public static int linearSearchTwo(int[] iTempArray, int SIZE, int ENTRY) {
int HowManyExist;
return HowManyExist;
}
public static void programOutput(boolean TempDoesItExist, int TempHowMany) {
if (TempDoesItExist)
System.out.println("does");
// Cool, you found the number 1320
else
System.out.println("does not");
// Dang, you didn't find the number 1320
}
}
我不是在寻求确切的答案,只是寻求一些帮助,让我朝着正确的方向前进。我觉得如果我从头开始做这个项目会更容易,但我的老师希望我们使用他的入门项目。
您似乎没有调用线性搜索方法。对于线性搜索,您可以执行以下操作:
found=false;
howManyCounter=0;
for (int x=0, x<array.length; x++){
if (array[x]==numberYouWant){
found=true;
howManyCounter++;
}
}
您可以通过这种方式修改两种线性搜索方法,这将起作用:
只需声明一个计数器并在每次找到您的 ENTRY 编号时递增它。
public static boolean linearSearchOne(int[] iTempArray, int SIZE, int ENTRY) {
for (int i = 0; i < SIZE; i++) {
if (iTempArray[i] == ENTRY) {
return true;
}
}
return false
}
public static int linearSearchTwo(int[] iTempArray, int SIZE, int ENTRY) {
int HowManyExist;
for (int i = 0; i < SIZE; i++) {
if (iTempArray[i] == ENTRY) {
HowManyExist ++;
}
}
return HowManyExist;
}
初始化你的布尔值和计数器
Bool doesItExist = false;
Int iHowManyTimes = 0;
您可以像这样以线性方式检查 java 中数组中的值:
for (int number : NumArray) {
if (anItemInArray == myValue) {
doesItExist = true;
return;
}
}
之后再做一遍并增加你的计数器
for (int number : NumArray) {
if (number == ENTRY) {
iHowMany += 1;
}
}
编辑:Return 语句添加到第一个循环,因为在找到值后没有理由继续
问题是有一个 10000 的数组已经为我填满了。将填充数组的数字范围将在 0 到 2500 之间。数组未排序。我的目标是通过一次线性搜索找到1320的存在,第二次线性搜索会检查数字1320出现了多少次。该数组为随机数组。
我已经尝试设置一个线性搜索来检查数组中的数字是否存在。我还尝试设置线性搜索来检查数组存在的次数。都没有用,这是我第一次使用数组,所以我不确定我是否正确地使用它们
public static void main(String[] args) {
// Finish adding Code
boolean DoesItExist;
int iHowMany;
final int SIZE = 10000, ENTRY = 1320;
int[] NumArray = new int[SIZE];
OwenHeading.getHeader("Assignment 9: Arrays.");
fillTheArray(NumArray, SIZE);
System.out.println("DONE");
}
public static void fillTheArray(int[] iTempArray, int SIZE) {
final int RANGE = 2500;
Random rand = new Random();
for (int index = 0; index <= SIZE - 1; index++)
iTempArray[index] = rand.nextInt(RANGE);
}
public static boolean linearSearchOne(int[] iTempArray, int SIZE, int ENTRY) {
boolean TempDoesItExist;
return TempDoesItExist;
}
public static int linearSearchTwo(int[] iTempArray, int SIZE, int ENTRY) {
int HowManyExist;
return HowManyExist;
}
public static void programOutput(boolean TempDoesItExist, int TempHowMany) {
if (TempDoesItExist)
System.out.println("does");
// Cool, you found the number 1320
else
System.out.println("does not");
// Dang, you didn't find the number 1320
}
}
我不是在寻求确切的答案,只是寻求一些帮助,让我朝着正确的方向前进。我觉得如果我从头开始做这个项目会更容易,但我的老师希望我们使用他的入门项目。
您似乎没有调用线性搜索方法。对于线性搜索,您可以执行以下操作:
found=false;
howManyCounter=0;
for (int x=0, x<array.length; x++){
if (array[x]==numberYouWant){
found=true;
howManyCounter++;
}
}
您可以通过这种方式修改两种线性搜索方法,这将起作用: 只需声明一个计数器并在每次找到您的 ENTRY 编号时递增它。
public static boolean linearSearchOne(int[] iTempArray, int SIZE, int ENTRY) {
for (int i = 0; i < SIZE; i++) {
if (iTempArray[i] == ENTRY) {
return true;
}
}
return false
}
public static int linearSearchTwo(int[] iTempArray, int SIZE, int ENTRY) {
int HowManyExist;
for (int i = 0; i < SIZE; i++) {
if (iTempArray[i] == ENTRY) {
HowManyExist ++;
}
}
return HowManyExist;
}
初始化你的布尔值和计数器
Bool doesItExist = false;
Int iHowManyTimes = 0;
您可以像这样以线性方式检查 java 中数组中的值:
for (int number : NumArray) {
if (anItemInArray == myValue) {
doesItExist = true;
return;
}
}
之后再做一遍并增加你的计数器
for (int number : NumArray) {
if (number == ENTRY) {
iHowMany += 1;
}
}
编辑:Return 语句添加到第一个循环,因为在找到值后没有理由继续