如何重新排序列表?

时间:2011-04-22 09:30:56

标签: android http web-applications

我已经通过

创建了一个List
List<NameValuePair> infoMap = new ArrayList<NameValuePair>();
URLEncodedUtils.parse(infoMap, new Scanner(Info), encoding);  

infoMap 包含很多信息,我只需要几个值。

如何创建一个仅包含所需键及其值的新List?

2 个答案:

答案 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);