比较2动态arraylist id,字段与json响应

时间:2016-03-18 08:28:56

标签: android arraylist

  • 我有两个arraylist,arraylist是来自网络服务
  • 的字段
  • 我必须比较arraylist并从两个
  • 中找到不常见的值
  • Arraylist充满活力,不断变化

  • 我所做的是:

    for (int i = 0; i < arraylist.size(); i++) {
    
             for (int j = 0; j < arraylist1.size(); j++) {
    
                       if ((arraylist.get(i).get("alert_id")).equals(arraylist1.get(j).get("alert_id")))
            {
                      Log.e("Same", "faltu");
                                }
                                else {
                                    Log.e("not same", "not faltu");
                                }
    
                            }
                        }
    

值:

arraylist 1 = id=92
arraylist 2 =id1 92
arraylist 1 = id1=91
arraylist 2 =id1 91
arraylist 1 = id1=86
arraylist 2 =id1 86
arraylist 1 =id1=85
arraylist 2 =id1 85
arraylist 1 = id1=84
arraylist 2 =id1 84
arraylist 1 = id1=81
arraylist 2 =id1 81
arraylist 1 =id1=80
arraylist 2 =id1 80
arraylist 1 = id1=79
arraylist 2 =id1 79

4 个答案:

答案 0 :(得分:1)

首先你必须循环两个arraylist,你必须检查值是否相等(OR)。如果值不相等,则必须将其添加到单独的列表中,并在添加到列表之前确保检查最后一个值,直到内循环中的最后一个值。以下代码描述了示例流程

ArrayList<String> unCommonList = new ArrayyList<String>();

        for (int i= 0; i<arraylist.size();i++) {
            for (int j= 0; j<arraylist1.size();j++) {
                    if (!arrayList.get(i).equal(arraylist1..get(j))) {
                  //Checking whether the last value in the list..
                    if (j == (arrayList1.Size() - 1)) {
                        unCommonList.add(arrayList.get(i));
                    }
                }
            }
        }

答案 1 :(得分:0)

/ *试试这个* /

ArrayList<Integer> arrayList=new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4);
ArrayList<Integer> arrayListtwo=new ArrayList<>();
arrayListtwo.add(1);
arrayListtwo.add(3);
arrayListtwo.add(4);
arrayListtwo.add(6);

    for(int i=0;i<arrayList.size();i++){
        for(int j=0;i<arrayListtwo.size();j++){
            if(arrayListtwo.get(j).equals(arrayList.get(i))){
                Log.e("equal",""+arrayList.get(i));
            }else{
                Log.e("unequal",""+arrayList.get(i));
            }

        }

    }

答案 2 :(得分:0)

List<Integer> A1 = new ArrayList<Integer>();
A1.add(1);
A1.add(6);
A1.add(3);
A1.add(9);
List<Integer> B1 = new ArrayList<Integer>();
B1.add(3);
B1.add(6);

最好使用包含要删除的对象的集合中的每个元素调用remove(Object obj)。此方法删除obj的第一个实例,因此如果要删除所有实例,则必须处理该事件。如果已成功找到并删除该对象,则返回true,否则返回false。

希望这是你在找什么?

List<Integer> A1MinusB1 = new ArrayList<Integer>(A1);
    A1MinusB1.removeAll(B1);

结果将是

Results:

1

9

你可以这样做。

//制作两个列表

List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
List<Integer> list2 = Arrays.asList(2, 3, 4, 6, 7);
// Prepare a union
List<Integer> union = new ArrayList<Integer>(list1);
union.addAll(list2);
// Prepare an intersection
List<Integer> intersection = new ArrayList<Integer>(list1);
intersection.retainAll(list2);
// Subtract the intersection from the union
union.removeAll(intersection);
// Print the result
for (Integer n : union) {
    System.out.println(n);
}

答案 3 :(得分:0)

您可以使用HashMap.put()方法。

如果返回任何值,则意味着键值对已存在。如果返回null则表示不存在键值对。

这是查找重复项的最有效方法。