如何检查具有相同数据的列表项?在android中

时间:2013-11-28 11:58:31

标签: android listview hashmap

我正在开发一个应用程序来从Web服务获取一些细节并在自定义列表视图中显示它们。我使用Hashmap来放置从JSON对象获取的数据。在我的列表视图中,我有一个

  • 人名
  • ID [对用户不可见]
  • 开始时间,结束时间
  • 日期和两个按钮

现在我只想查看天气,列表中的数据具有相同的日期和相同的时间段。例如,有任何数据

  • 日期:“2013/6/7”
  • 开始时间:8.00结束时间9.00

我不知道该怎么办..我可以在我的哈希映射中查看它吗?或者有人可以给我一个如何做到这一点的想法..请

3 个答案:

答案 0 :(得分:0)

您可以使用以下方法检查列表中是否存在字符串。

arraylist.contains(stringtocheck);

答案 1 :(得分:0)

这样做。

public HashMap getDuplicateValues(HashMap in)
{
// Clone input HashMap because we're removing stuff from it
in = (HashMap)in.clone();
HashMap rval = new HashMap();
Object[] keys = in.keySet().toArray();

// iterate through all keys
for(int x=0;x<keys.length;x++) {
  Object value = in.get(keys[x]);
  in.remove(keys[x]);
  // if value is in input HashMap, store it in duplicate HashMap because it has another value
  if(in.containsValue(value)) {
     rval.put(keys[x],value);
  }
  // if value is in duplicate HashMap, store it also because it HAD another value earlier
  if(rval.containsValue(value)) {
     rval.put(keys[x],value);
  }
  }

 return(rval);
  }

测试代码:

 HashMap map = new HashMap();

 map.put("1","2");
map.put("2","1");
map.put("3","8");
map.put("4","4");
map.put("5","6");
map.put("6","8");
map.put("7","3");
map.put("8","4");
map.put("9","4");

HashMap dups = getDuplicateValues(map);

System.out.println("MAP = "+map);
System.out.println("DUP = "+dups);

输出:

MAP = {3=8, 2=1, 1=2, 7=3, 6=8, 5=6, 4=4, 9=4, 8=4}
DUP = {3=8, 6=8, 4=4, 9=4, 8=4}

答案 2 :(得分:0)

String dateSearch = "2013/6/7"


boolean dateExists = hm.containsValue(dateSearch);
        if (dateExists)
        {
             // get values
             for(int k = 0; k < hm.size(); k++){
             map = (HashMap)hm.get(k);
             }
        }
        else
        {
            ...
        }