使用Java进行数组搜索

使用Java进行数组搜索,java,arrays,Java,Arrays,所以我对Java非常陌生,我的任务是创建一个数组,大小为10个索引,复制它,并对副本进行排序。我的这些部件工作正常。他们希望我做的是提示用户输入他们希望搜索的值,如果找到,则返回索引以及在哪个数组中找到它。这最后的搜索部分真的把我搞砸了。我知道我的代码很草率,但我还不太擅长这个。这本书当然有一个例子,但它使用了一个驱动程序类,我不完全确定在这种情况下是否需要这样做。谢谢你的回复,如果我发错了,我表示歉意 -这是所需最终输出的示例 public class MJUnit1Ch9 { pu

所以我对Java非常陌生,我的任务是创建一个数组,大小为10个索引,复制它,并对副本进行排序。我的这些部件工作正常。他们希望我做的是提示用户输入他们希望搜索的值,如果找到,则返回索引以及在哪个数组中找到它。这最后的搜索部分真的把我搞砸了。我知道我的代码很草率,但我还不太擅长这个。这本书当然有一个例子,但它使用了一个驱动程序类,我不完全确定在这种情况下是否需要这样做。谢谢你的回复,如果我发错了,我表示歉意

-这是所需最终输出的示例

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()