3 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
使用Arrays
實(shí)用程序類有兩種方法可以實(shí)現(xiàn)此目的。
如果數(shù)組未排序且不是基元數(shù)組:
java.util.Arrays.asList(theArray).indexOf(o)
如果數(shù)組是基元并且沒(méi)有排序,那么應(yīng)該使用其他答案之一提供的解決方案,例如KeremBaydo?an,Andrew McKinlay或Mishax。即使theArray
是原始代碼(可能發(fā)出警告),上面的代碼也會(huì)編譯,但是你會(huì)得到完全錯(cuò)誤的結(jié)果。
如果數(shù)組已排序,您可以使用二進(jìn)制搜索來(lái)獲得性能:
java.util.Arrays.binarySearch(theArray, o)

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
數(shù)組沒(méi)有indexOf()
方法。
也許這個(gè)Apache Commons Lang ArrayUtils
方法就是你想要的
import org.apache.commons.lang3.ArrayUtils;String[] colours = { "Red", "Orange", "Yellow", "Green" };int indexOfYellow = ArrayUtils.indexOf(colours, "Yellow");

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
空無(wú)一人。要么使用java.util.List
*,要么你可以寫自己的indexOf()
:
public static <T> int indexOf(T needle, T[] haystack){ for (int i=0; i<haystack.length; i++) { if (haystack[i] != null && haystack[i].equals(needle) || needle == null && haystack[i] == null) return i; } return -1;}
*您可以使用您的陣列制作一個(gè) Arrays#asList()
添加回答
舉報(bào)