假设我有一个Person对象。在此Person中有一个int和两个String字段。那个int对于那个人来说总是唯一的,但Person可以有两个相同的字符串。如果它存储在数组中,我可以搜索该特定的人吗?
答案 0 :(得分:2)
迭代数组:
public static Person findById (Person[] people, int id) {
for (Person p : people) {
if (p.getId() == id) {
return p;
}
}
return null;
}
答案 1 :(得分:1)
public static int getIdIndex(int iD){
//this will find index of an specific int in an int array
int index = 0;
for (int iD2 : peopleId){
if (iD2 == iD) return index;
else index++;
}
return -1;
}
现在情况可能会有所改变,具体取决于您创建对象的确切程度,但主要想法就在那里。
答案 2 :(得分:1)
迭代数组是最简单的直接方式,但Java 8提供了一种获取您关注的唯一元素的方法。它包含在Optional
中,因此您必须自行解压缩。
public static Optional<Person> findPersonById(Person[] people, int id) {
return Arrays.stream(people).filter(p -> p.getId() == id).findFirst();
}
这可以这样调用:
Person person = findPersonById(people, 1761283695).get();