我需要一些Java链表的帮助。我需要能够搜索姓氏,电话号码等人。 到目前为止,这是我的代码。
LinkedList list = new LinkedList();
String peopleFile = "res/people.txt";
int id = 1;
try (BufferedReader fin = new BufferedReader(new FileReader(peopleFile)))
{
String line = fin.readLine();
while (line != null)
{
String[] clientLine = line.split(";");
Property comprop = new CommercialProperty(id, clientLine[0], clientLine[1],
clientLine[2], clientLine[3], Double.parseDouble(clientLine[4]),
clientLine[5], clientLine[6], Integer.parseInt(clientLine[7]));
list.add(comprop);
line = fin.readLine();
id++;
}
fin.close();
}
catch (FileNotFoundException e)
{
}
catch (IOException e)
{
}
答案 0 :(得分:0)
假设您的自定义类具有getLastName()
,getPhoneNumber()
等方法。您可以使用filter()
搜索满足特定条件的对象。
例如:
static List<ComercialProperty> propertyWithLastName(List<ComercialProperty> list, String name) {
return list.stream().filter(p -> name.equals(p.getName())).collect(Collectors.toList());
}
这将返回List<ComercialProperty>
,其中包含getName()
与name
具有相同值的每个实例。
此外,您应该避免使用原始类型。创建列表时,您应该说明列表将存储哪种对象类型:
List<CommercialProperty> list = new LinkedList<>();
注意我使用的是CommercialProperty
而不是Property
,因为您希望使用特定于CommercialProperty
类的方法。