使用Java进行数组搜索
所以我对Java非常陌生,我的任务是创建一个数组,大小为10个索引,复制它,并对副本进行排序。我的这些部件工作正常。他们希望我做的是提示用户输入他们希望搜索的值,如果找到,则返回索引以及在哪个数组中找到它。这最后的搜索部分真的把我搞砸了。我知道我的代码很草率,但我还不太擅长这个。这本书当然有一个例子,但它使用了一个驱动程序类,我不完全确定在这种情况下是否需要这样做。谢谢你的回复,如果我发错了,我表示歉意 -这是所需最终输出的示例使用Java进行数组搜索,java,arrays,Java,Arrays,所以我对Java非常陌生,我的任务是创建一个数组,大小为10个索引,复制它,并对副本进行排序。我的这些部件工作正常。他们希望我做的是提示用户输入他们希望搜索的值,如果找到,则返回索引以及在哪个数组中找到它。这最后的搜索部分真的把我搞砸了。我知道我的代码很草率,但我还不太擅长这个。这本书当然有一个例子,但它使用了一个驱动程序类,我不完全确定在这种情况下是否需要这样做。谢谢你的回复,如果我发错了,我表示歉意 -这是所需最终输出的示例 public class MJUnit1Ch9 { pu
public class MJUnit1Ch9 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
double[] numList; //list of random numbers
double[] numListSorted; //sorted copy of array
int numSearch; //array search
int numSearchIndex; //position in array
numList = new double[10]; //creation of size 10 array
for (int i = 0; i < 10; i++) { //create random numbers between 1 and 20
numList[i] = (int) (Math.random() * 20 + 1);
}
numListSorted = Arrays.copyOf(numList, numList.length); //copy original array
Arrays.sort(numListSorted); //sort copy by API
System.out.printf("%7s%7s\n", "Unsorted Array", "Sorted Array");
for (int i = 0; i < numList.length; i++) {
System.out.printf("%7.2f%7.2f\n", numList[i], numListSorted[i]);
}
//*************************************************************************
//*************************************************************************
System.out.print("Please enter number to search for:");
}
}
公共类MJUnit1Ch9{
公共静态void main(字符串[]args){
扫描仪标准输入=新扫描仪(System.in);
double[]numList;//随机数列表
double[]numListSorted;//数组的已排序副本
int numSearch;//数组搜索
int numsarchindex;//数组中的位置
numList=new double[10];//创建大小为10的数组
对于(int i=0;i<10;i++){//创建介于1和20之间的随机数
numList[i]=(int)(Math.random()*20+1);
}
numList排序=Arrays.copyOf(numList,numList.length);//复制原始数组
Arrays.sort(numListSorted);//按API对副本排序
System.out.printf(“%7s%7s\n”、“未排序数组”、“排序数组”);
for(int i=0;i
您可以使用扫描仪对象读取数字
stdIn.nextInt()
对于搜索,您可以使用
数组的二进制搜索方法
类,通过传递从扫描仪对象读取的数字您在数组上尝试过二进制搜索吗?检查这个-在第一个答案中有BS实现:“驱动程序”程序通常只是用作调用在另一个类中定义的代码的主方法。考虑是一个演示。你不需要它。您只需编写逻辑(一个简单的循环)就可以在已有的main方法中搜索数组。我没有。据我所知,二进制搜索只能用于排序数组。我这样想是不对的吗?也许这会有帮助:我试图在提示符字符串后使用stdIn.nextInt()设置numSearch,但实际上是搜索两个不同的数组,并返回它们的索引位置(如果存在)。
stdIn.nextInt()