2011-04-22 73 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);