【问题标题】:Array search using Java使用 Java 进行数组搜索
【发布时间】:2017-08-17 19:59:11
【问题描述】:

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

http://imgur.com/a/T8t3Q - 这是所需最终输出的示例。

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:");
    }
}

【问题讨论】:

  • 您是否在阵列上尝试过二分搜索?检查这个 - 它在第一个答案中有 BS 实现:stackoverflow.com/questions/19492402/…
  • “驱动程序”程序通常仅用作调用另一个类中定义的代码的主要方法。考虑是一个演示。你不需要它。您只需编写逻辑(一个简单的循环)即可在已有的 main 方法中搜索数组。
  • 我没有。据我所知,二进制搜索只能用于排序数组。我这样想有错吗?
  • 也许这会有所帮助:stackoverflow.com/questions/2506077/…

标签: java arrays


【解决方案1】:

您可以使用扫描仪对象读取数字

stdIn.nextInt()

对于搜索,您可以使用 Arrays 类的二进制搜索方法,方法是传递您从扫描仪对象中读取的数字

【讨论】:

  • 我尝试在提示字符串后使用 stdIn.nextInt() 设置 numSearch,但这是对两个不同数组的实际搜索,如果存在则返回这些数组的索引位置。跨度>
猜你喜欢
  • 2014-08-24
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 2011-07-10
  • 1970-01-01
  • 2017-04-16
  • 2013-09-29
相关资源
最近更新 更多