2015-04-02 77 views
-4

我需要一些Java鏈接列表的幫助。我需要能夠搜索人姓氏,電話號碼等。 這是我的代碼到目前爲止。Java LinkedList搜索

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) 
    { 
    } 
+2

你的問題是什麼? – 2015-04-02 15:53:00

回答

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類方法。