我一定是错过了一些非常明显的东西,但我已经搜索了所有,不能找到这个方法。
当前回答
int findIndex(int myElement, int[] someArray){
int index = 0;
for(int n: someArray){
if(myElement == n) return index;
else index++;
}
}
注意:你可以将此方法用于int类型的数组,你也可以将此算法用于其他稍有变化的类型
其他回答
int findIndex(int myElement, int[] someArray){
int index = 0;
for(int n: someArray){
if(myElement == n) return index;
else index++;
}
}
注意:你可以将此方法用于int类型的数组,你也可以将此算法用于其他稍有变化的类型
Jeffrey Hantin的答案很好,但它有一些限制,如果它是这个做这个或那个…
你可以编写自己的扩展方法,它总是以你想要的方式工作。
Lists.indexOf(array, x -> item == x); // compare in the way you want
这是您的分机号码
public final class Lists {
private Lists() {
}
public static <T> int indexOf(T[] array, Predicate<T> predicate) {
for (int i = 0; i < array.length; i++) {
if (predicate.test(array[i])) return i;
}
return -1;
}
public static <T> int indexOf(List<T> list, Predicate<T> predicate) {
for (int i = 0; i < list.size(); i++) {
if (predicate.test(list.get(i))) return i;
}
return -1;
}
public interface Predicate<T> {
boolean test(T t);
}
}
List接口有一个indexOf()方法,您可以使用array的asList()方法从数组中获取List。除此之外,Array本身没有这样的方法。它确实有一个用于排序数组的binarySearch()方法。
没有。或者使用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;
}
*你可以使用数组#asList()创建一个数组
数组本身没有这个方法。然而,A List做到了: indexOf
推荐文章
- Intellij IDEA Java类在保存时不能自动编译
- 何时使用Mockito.verify()?
- 在maven中安装mvn到底做什么
- 不可变与不可修改的集合
- 如何在JSON中使用杰克逊更改字段名
- GSON -日期格式
- 如何从线程捕获异常
- 无法解析主机"<URL here>"没有与主机名关联的地址
- 如何在Java中打印二叉树图?
- String.format()在Java中格式化双重格式
- com.jcraft.jsch.JSchException: UnknownHostKey
- Java中的操作符重载
- 如何在c#中连接列表?
- 如何加速gwt编译器?
- 在Hibernate中重新连接分离对象的正确方法是什么?