Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回数组的位置_Java_Arrays_Find - Fatal编程技术网

Java 返回数组的位置

Java 返回数组的位置,java,arrays,find,Java,Arrays,Find,我正在尝试创建一个find方法,该方法将检查PhoneDirectory中的每个条目,并返回与参数中给定名称匹配的名称位置。这就是目前的情况: private String find(String name) { for (DirectoryEntry x : theDirectory) { if (x.getName().equals(name)) { return x.getName(); } } return

我正在尝试创建一个find方法,该方法将检查PhoneDirectory中的每个条目,并返回与参数中给定名称匹配的名称位置。这就是目前的情况:

private String find(String name) {
    for (DirectoryEntry x : theDirectory) {
        if (x.getName().equals(name)) {
            return x.getName();
        }
    }

    return null;
}
但是,我将从其他方法中调用我的find函数,这些方法不一定要返回名称,而是要将数字附加到名称上(每个DirectoryEntry都有一个名称和一个telno)。
任何关于如何返回数组位置而不仅仅是匹配名称的帮助,都将不胜感激。

您可以使用计算器来计算位置

private int find(String name) {
    int i = 0;
    for (DirectoryEntry x : theDirectory) {
        if (x.getName().equals(name)) {
            return i;
        } 
        i++;
    }

    return -1;  // returning -1 if not found
}

或者您可以使用普通for循环而不是foreach

您可以使用计数器来计算位置

private int find(String name) {
    int i = 0;
    for (DirectoryEntry x : theDirectory) {
        if (x.getName().equals(name)) {
            return i;
        } 
        i++;
    }

    return -1;  // returning -1 if not found
}
private String find(String name) {
    int k=0;
    for (DirectoryEntry x : theDirectory) {
        if (x.getName().equals(name)) {
            k++;
            return x.getName();
        }
    }
//k will give you pos
    return null;
}

或者可以使用普通for循环而不是foreach

如果需要数组中的位置,请使用常规循环而不是foreach循环

private String find(String name) {
    int k=0;
    for (DirectoryEntry x : theDirectory) {
        if (x.getName().equals(name)) {
            k++;
            return x.getName();
        }
    }
//k will give you pos
    return null;
}
for (int i=0;i<theDirectory.length;i++) {
DirectoryEntry x = theDirectory[i];
    if (x.getName().equals(name)) {
        return i;
    }
}

for(int i=0;i如果需要数组中的位置,请使用常规循环而不是foreach循环

for (int i=0;i<theDirectory.length;i++) {
DirectoryEntry x = theDirectory[i];
    if (x.getName().equals(name)) {
        return i;
    }
}

for(int i=0;i取决于目录
字段的类型,您可以使用自己的计数器,其长度不超过

private int find(String name) {
    for (int i = 0; i < theDirectory.length(); i++) {
        DirectoryEntry x = theDirectory[i]; //If it is an Array; for Lists use get etc...
        if (x.getName().equals(name)) {
            return i;
        }
    }

    return -1;
}
private int find(字符串名称){
for(int i=0;i
根据您的
目录
字段的类型,您可以使用自己的计数器,其长度不超过
长度

private int find(String name) {
    for (int i = 0; i < theDirectory.length(); i++) {
        DirectoryEntry x = theDirectory[i]; //If it is an Array; for Lists use get etc...
        if (x.getName().equals(name)) {
            return i;
        }
    }

    return -1;
}
private int find(字符串名称){
for(int i=0;i
为什么不避免重新发明轮子,改用番石榴呢:

private int find(String name) {
    return Iterables.indexOf(theDirectory, new Predicate<DirectoryEntry>() {
        public boolean apply(DirectoryEntry de) {
            return de.getName().equals(name);
        }
    });
}
private int find(字符串名称){
返回Iterables.indexOf(目录,新谓词(){
公共布尔应用(DirectoryEntry de){
返回de.getName().equals(name);
}
});
}

为什么不避免重新发明轮子,改用番石榴呢:

private int find(String name) {
    return Iterables.indexOf(theDirectory, new Predicate<DirectoryEntry>() {
        public boolean apply(DirectoryEntry de) {
            return de.getName().equals(name);
        }
    });
}
private int find(字符串名称){
返回Iterables.indexOf(目录,新谓词(){
公共布尔应用(DirectoryEntry de){
返回de.getName().equals(name);
}
});
}

这与您拥有的没有太大区别。只需将for each循环替换为“normal”for循环,并在找到索引时返回索引,否则返回-1。这与您拥有的没有太大区别。只需将for each循环替换为“normal”for loop,并在找到它时返回索引,否则返回-1。您应该如何从该函数中获取k的值?@PakkuDon使用带有唯一分隔符的名称将其追加,然后进行解析。您应该如何从该函数中获取k的值?@PakkuDon使用带有唯一分隔符的名称将其追加谢谢,这很好。我现在如何从另一个方法返回该数组位置的telno。方法体当前由find(name);find(name)组成现在将返回位置。谢谢,效果很好。我现在如何从另一个方法返回该数组位置中的telno。方法体当前由find(name)组成;find(name)现在将返回位置。