我已经通过
创建了一个ListList<NameValuePair> infoMap = new ArrayList<NameValuePair>();
URLEncodedUtils.parse(infoMap, new Scanner(Info), encoding);
但 infoMap 包含很多信息,我只需要几个值。
如何创建一个仅包含所需键及其值的新List?
答案 0 :(得分: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);
答案 1 :(得分: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);