Java 返回数组的位置
我正在尝试创建一个find方法,该方法将检查PhoneDirectory中的每个条目,并返回与参数中给定名称匹配的名称位置。这就是目前的情况: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
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)现在将返回位置。