Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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_Search - Fatal编程技术网

Java 在数组中按姓氏搜索

Java 在数组中按姓氏搜索,java,arrays,search,Java,Arrays,Search,我制作了一个包含三个类的联系人列表,ContactList类包含一个数组,其中存储姓氏、名字、街道、城市、州、邮政编码、国家、电子邮件、电话号码和便笺 我想在ContactList类中实现一个按姓氏搜索的功能,在该功能中,它显示了具有用户搜索的姓氏的联系人的所有信息,但我似乎找不到任何有用的信息:( import java.util.*; 公共类联系人列表{ //数组及其属性的声明 私有最终整数大小=10; 私人[]名单; private int nextentitylementinarray=

我制作了一个包含三个类的联系人列表,ContactList类包含一个数组,其中存储姓氏、名字、街道、城市、州、邮政编码、国家、电子邮件、电话号码和便笺

我想在ContactList类中实现一个按姓氏搜索的功能,在该功能中,它显示了具有用户搜索的姓氏的联系人的所有信息,但我似乎找不到任何有用的信息:(

import java.util.*;
公共类联系人列表{
//数组及其属性的声明
私有最终整数大小=10;
私人[]名单;
private int nextentitylementinarray=0;
//ContactList对象的构造函数
公共联系人列表(){
列表=新人[人数];
}
//方法将新联系人添加到数组中
public void addNewContact(){
列表[NextEnterYelementArray]=新的人员();
列表[NextEnteryElementArray].read();
NextEnteryElementArray++;
}
//方法按姓氏检索联系人
int searchByLastName(人员[]列表){
扫描仪控制台;
控制台=新扫描仪(System.in);
String searchByLastName=console.next();
for(int i=0;i
您的
列表
下标似乎是错误的:对于循环的每个迭代,您都在这样做:

if (list[nextEmptyElementInArray].lastName.equals(searchByLastName))
if (list[i].lastName.equals(searchByLastName))
如果我理解正确,您应该这样做:

if (list[nextEmptyElementInArray].lastName.equals(searchByLastName))
if (list[i].lastName.equals(searchByLastName))
此外,请注意将变量命名为与函数相同的名称。这最多会导致混淆

[编辑]刚刚注意到您正在预先分配列表,然后使用
nextEnteryElementArray
管理实际内容长度。您的
for
循环可能会如下所示:

for (int i= 0; i< nextEmptyElementInArray; i++)
for(int i=0;i
我建议将搜索方法更改为

 int searchByLastName(Person [] list, String lastName) {
        for (int i= 0; i < list.length; i++) {
            if (list[i].lastName.equals(lastName)) 
                return i;
            }
        }
        return -1;
  }
int searchByLastName(个人[]列表,字符串lastName){
for(int i=0;i

从该函数外部的控制台读取lastName并将其作为搜索参数传递

为什么总是检查
列表[NextEnteryElementArray]
?看起来应该是
列表[i]