2011-04-22 109 views
0

我已經如何重新排列列表?

List<NameValuePair> infoMap = new ArrayList<NameValuePair>(); 
URLEncodedUtils.parse(infoMap, new Scanner(Info), encoding); 

創建一個列表,但在infoMap包含了大量的信息,其中我只需要一對夫婦的值。

如何創建一個僅包含所需鍵和值的新列表?

回答

1

既然你需要創建一個新的列表,並約在決定一個項目是否應該是你的結果的一部分與否的標準很沉默,我能想到的最簡單的事情是

private List<NameValuePair> getUsefulList(final List<NameValuePair> baseList) 
{ 
    final List<NameValuePair> list = new ArrayList<NameValuePair>(); 
    for (final NameValuePair item : baseList) 
    { 
     if (isUseful(item.getName())) 
      list.add(item); 
    } 
    return list; 
} 

private boolean isUseful(String name) 
{ 
    return [... decision based on your criteria ...]; 
} 

使用這些方法,您可以創建新的列表:

final List<NameValuePair> resultList = getUsefulList(baseList); 
1
boolean isNeeded(Strnig name){ 
    //check here if you need this key 
    return true; 
} 

List<NameValuePair> infoMap = new ArrayList<NameValuePair>(); 
... 
List<NameValuePair> realInfoMap = new ArrayList<NameValuePair>(); 
for(NameValuePair val:infoMap){ 
    if(isNeeded(val.getName())){ 
    realInfoMap.add(val); 
    } 
} 

URLEncodedUtils.parse(realInfoMap, new Scanner(Info), encoding);