/**
* 查找数组int[] arr = { 37, 92, 54, 18, 76 };中18的索引有几种方式?
*/
public class SearchTest {
public static void main(String[] args) {
int[] arr = { 37, 92, 54, 18, 76 };
{
/**
* 第一种方法:遍历数组,找到就结束
*/
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 18) {
index = i;
break;
}
}
System.out.println("index=" + index);
}
{
/**
* 第二种方法:先将其转化为String类型,去除“[”," ","]"之后, 用“,”作为分隔符,然后遍历字符串数组
* 再遍历字符串数组。
*/
String str = Arrays.toString(arr);
str = str.replace(" ", "");
str = str.replace("[", "");
str = str.replace("]", "");
String[] s = str.split(",");
int index = -1;
for (int i = 0; i < s.length; i++) {
if (s[i].equals("18")) {
index = i;
break;
}
}
System.out.println("index=" + index);
}
{
/**
* 第三种方法:使用自己写好的IndexSort类
*/
int[] index = IndexSort.indexSort(arr);
int temp = Arrays.binarySearch(arr, 18);
System.out.print("index=" + index[temp]);
}
}
}
package cn.itcast;
public class IndexSort {
public static int[] indexSort(int[] arr) {
int[] index = new int[arr.length];
for (int i = 0; i < index.length; i++) {
index[i] = i;
}