2013-05-17 25 views
1
List<List<String>> listOflists = new List<List<String>>(); 
List<String> firstList = new List<String>(); 
firstList.add("NameX"); 
firstList.add("AgeX"); 
firstList.add("DesignationX"); 
listOflists.add(firstList); 

List<String> secondList = new List<String>(); 
secondList.add("NameY"); 
secondList.add("AgeY"); 
secondList.add("DesignationY"); 
listOflists.add(secondList); 

List<String> thirdList = new List<String>(); 
thirdList.add("NameZ"); 
thirdList.add("AgeZ"); 
thirdList.add("DesignationZ"); 
listOflists.add(thirdList); 

輸入:

我的要求是類似「如果我給姓名或年齡或名稱???」作爲輸入。我需要知道這個特定的輸入來自該列表。識別輸入是來自特定列表嵌套列表內

例如: 如果我給「NameZ」作爲輸入,我需要一些線索,輸入來自thirdList。

+2

只是迭代你的列表並檢查字符串,直到找到NameZ,或者你有更具體的問題嗎? –

回答

2

Java集合有一個名爲contains(item)的方法,它將在集合中搜索指定的項目。

在這種情況下,最好的辦法是查看這些列表並使用此方法。

String searchStr = "age"; 
for (List<String> list : listOflists){ 
    if (list.contains(searchStr)){ 
     // inside this list, do something 
    } 
} 

如果你只是尋找如果一個產品集合內,最快的是使用Set而非List,並且會更適合這裏。

+0

你可以變得聰明並將你的列表子類化並重新實現** contains()**,但我不認爲會有任何性能改進,坦率地說,「變得聰明」通常是「混淆」的同義詞。 –