如果输入与java中对象数组中的元素匹配,则返回一个值
如果输入与对象数组中的任何id元素匹配,我想返回值如果输入与java中对象数组中的元素匹配,则返回一个值,java,Java,如果输入与对象数组中的任何id元素匹配,我想返回值1,否则返回-1 例如 27 vjxiyhc 共青团 34 奥古伊 库克萨尼 10 oxhdjcs gvhtlzw 19 塔姆克夫 阿里克勒 32 cvljyye 海伊基夫 34 输出应为1。如果最后一次输入为25,则输出应为-1 下面给出的代码工作不正常。它只检查数组中最后一个输入的id值。如果我输入27或10或19,它仍然返回-1。只有32返回1。请提出修改建议。 公共类LibraryDemo { 公共静态库[]searchLibraryB
1
,否则返回-1
例如
27
vjxiyhc
共青团
34
奥古伊
库克萨尼
10
oxhdjcs
gvhtlzw
19
塔姆克夫
阿里克勒
32
cvljyye
海伊基夫
34
输出应为1
。如果最后一次输入为25
,则输出应为-1
下面给出的代码工作不正常。它只检查数组中最后一个输入的id值。如果我输入
27
或10
或19
,它仍然返回-1
。只有32
返回1
。请提出修改建议。
公共类LibraryDemo
{
公共静态库[]searchLibraryById(库[]objArray,int-inputid)
{
int out=0;
对于(int i=0;i您需要在找到输入值后中断循环。out
将被覆盖,因为即使在找到匹配项后,您仍会继续检查剩余的数组索引
for(int i=0;i<objArray.length;i++)
{
if (objArray[i].id==inputid)
{
out=1;
break; // found match, break out of loop
}
else
{
out=-1;
}
}
System.out.print(out);
for(int i=0;i匹配后,您不会中断for循环。如果数组中没有大量使用并行流的对象,则可以更有效地执行此操作。请参阅下面的代码
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import static java.util.stream.Collectors.toList;
public static Library[] searchLibraryById(Library[] objArray, int inputid)
{
List<Library> lib = Arrays.asList(objArray).parallelStream()
.filter(obj -> obj.id == inputid).collect(toList());
int out = lib.size() != 0 ? 1 : -1;
System.out.println(out);
return objArray;
}
导入java.util.array;
导入java.util.List;
导入java.util.Scanner;
导入静态java.util.stream.Collectors.toList;
公共静态库[]searchLibraryById(库[]objArray,int-inputid)
{
List lib=Arrays.asList(objArray.parallelStream())
.filter(obj->obj.id==inputid.collect(toList());
int out=lib.size()!=0?1:-1;
System.out.println(out);
返回objArray;
}
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import static java.util.stream.Collectors.toList;
public static Library[] searchLibraryById(Library[] objArray, int inputid)
{
List<Library> lib = Arrays.asList(objArray).parallelStream()
.filter(obj -> obj.id == inputid).collect(toList());
int out = lib.size() != 0 ? 1 : -1;
System.out.println(out);
return objArray;
}