搜索项目的数组。如何显示位置项目?

我正在BlueJ中创建一个允许用户对无序数组进行排序和搜索的应用程序。我有搜索工作。目前它要求用户输入一个数字来搜索数组,并返回找到或没有找到的罚款。搜索项目的数组。如何显示位置项目?

我希望能够告诉用户在数组中发现了什么位置的数字?

下面是我的代码为我的搜索方法:

public static void dosearch(OArray a) 

{

clrscr();

if (a.isEmpty()) {

System.out.println("Array is Empty!");

pressKey();

return;

}

clrscr();

System.out.println("Enter number to search for : ");

int item;

item = Genio.getInteger();

if (a.retrieve(item) == false)

System.out.println("Cannot find " + item);

else

System.out.println(item + " Found");

pressKey();

}

OArray类代码:

public class OArray extends Array 

{

// These are the Fields

// Constructor

public OArray(){

super();

System.out.println("OArray Created!!! size 10");

}

public OArray(int newsize){

super(newsize);

System.out.println("OArray Created!!!");

}

public boolean addToEnd(int item)

{

if (isFull() == true)

return false;

array[nextfree]=item;

nextfree++;

//bubbleSort();

return true;

}

public void bubbleSort()

{

int temp = 0;boolean swaps = true;int last = nextfree-1;int i = 0;

while (swaps == true)

{

swaps=false;

i = 0;

while (i < last)

{

if (array[i] > array[i+1])

{

temp = array[i+1];

array[i+1] = array[i];

array[i] = temp;

swaps=true;

}

i++;

}

}

}

public boolean retrieve(int item)

{

if (isEmpty())

return false;

int i=0;

while (i < nextfree)

{

if (array[i] >= item)

{

posfound=i;

if (item == array[i])

{

itemback = item;

posfound = i;

return true;

}

else return false;

}

i++;

}

posfound = nextfree;

return false;

}

public boolean addToFront(int item)

{

return addToEnd(item);

}

回答:

一般来说,在一个数组来访问某个项目的唯一途径是通过指数,因此,了解索引很容易,因为你已经知道了。传统的习惯用法是,你有某种find()方法,如果找到它就返回元素的索引,否则返回-1

int[] a = new int[] { 7, 2, 4, 6 }; 

int foundAt = findItemInArray(a, 2);

if (foundAt >= 0) {

System.out.println("Found at [" + foundAt + "]");

} else {

System.out.println("Not found");

}

public static int findItemInArray(int[] a, int lookingFor) {

for (int i = 0; i < a.length; i++) {

if (a[i] == lookingFor) {

return i;

}

}

return -1;

}

回答:

您可以使用线性搜索方法。 在for循环存储中找到数字后,它就是索引。您可以稍后再显示它。

以上是 搜索项目的数组。如何显示位置项目? 的全部内容, 来源链接: utcz.com/qa/266205.html

回到顶部