我必须编写一个程序,我必须存储客户编号地址和ID 我为所有人创建了arrayList 其中一个选项是程序询问身份证号码并提供信息,如果它不存在,则显示未找到
以下是我为搜索客户端ID而写的内容
public static List<Integer> findClient (List<Integer> idnumbers, Integer searchterm )
{
List<Integer> result = new ArrayList<Integer>();
for(Integer idnum : idnumbers)
{
if(idnum.contains(searchterm))
result.add(idnum);
}
return result;
}
我在.contains上得到红线说“方法包含(整数)未定义类型Integer”
任何帮助我该如何解决?
答案 0 :(得分:2)
contains是Collection上的一个方法,因此您可以在数组列表中使用它,但不能在Integer上使用
对于您的情况,您需要在Integer上使用equals方法。这是修改后的方法:
public static List<Integer> findClient (List<Integer> idnumbers, Integer searchterm )
{
List<Integer> result = new ArrayList<Integer>();
for(Integer idnum : idnumbers)
{
if(idnum.equals(searchterm))
result.add(idnum);
}
return result;
}
答案 1 :(得分:0)
List idnumbers
应改为
List<Integer> idnumbers
答案 2 :(得分:0)
if(idnumbers.contains(searchterm))
无法在Integer上调用contains。这只是一个数字......
答案 3 :(得分:0)
虽然你有写回答,但有些事情你可以改变以满足你的要求。
您必须存储客户编号,地址和ID,但在arraylist中您只是保存ID。
你应该为这样的客户做一个更好的课程
class Client{
int id;
String address;
String number;
//getters and setters
}
现在将客户信息存储在Client类型的arraylist中,如下所示 -
ArrayList<Client> clients = new ArrayList<Client>();
然后搜索您必须的特定客户端 -
1 - 通过直接检查arraylist中每个客户端的ID -
for(Client client:clients){
if(client.getId==idToSearch)
return client;
}
2 - 以一种方式覆盖等于你的客户端类的方法,它将检查客户端的id是否相同然后它们是相同的。您可以使用您的ide生成equals方法然后直接使用包含mehtod这样的
//为客户端类
创建一个id为的构造函数Client client = new client(idToSearch);
if(clients.contains(client)){
clients.get(clients.indexOf(client));
}
我希望第二种方式希望它有助于您的代码设计。