2016-03-18 25 views
0
  • 我有2的ArrayList,ArrayList的是來自網絡的服務領域
  • 我有兩個
  • 的ArrayList是ArrayList的比較,發現未共同的價值動態的,不斷變化的continious比較2動態數組列表ID,場JSON響應

  • 我做了什麼是:

    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 
+0

你有什麼問題..? –

+0

我想簡單比較2 arraylist並採取不合理的價值,並將其存儲在另一個arraylist – tiger

回答

1

首先,你必須循環兩個數組列表,你不得不檢查值是否相等(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)); 
        } 
       } 
      } 
     } 
+0

如何才能像這樣添加arraylist? – tiger

+0

@tiger ::我已編輯..看看它。 – Jeevanandhan

+0

你有沒有看到我的問題,,我想要特別的alert_id,從你的答案我如何能得到alert_id – tiger

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)); 
      } 

     } 

    } 
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(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); 
} 
0

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

如果它返回任何值表示鍵值對已經存在。如果它返回null意味着沒有鍵值對存在。

這是找到重複的最有效的方法。