Java LinkedList搜索

时间:2015-04-02 15:52:32

标签: java

我需要一些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)
  {
  }

1 个答案:

答案 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类的方法。