Android 比较2个arraylist时获得相同的值
我可以获取json响应,在arraylist中添加了响应Android 比较2个arraylist时获得相同的值,android,arraylist,hashmap,compare,Android,Arraylist,Hashmap,Compare,我可以获取json响应,在arraylist中添加了响应 当我尝试比较2 arraylist时,arraylist 2的值没有改变 我所做的: json解析: for (int i = 0; i < array.length(); i++) { JSONObject obj = array.getJSONObject(i); id = obj.getString("alert_id");
for (int i = 0; i < array.length(); i++) {
JSONObject obj = array.getJSONObject(i);
id = obj.getString("alert_id");
map.put("alert_id", id);
Log.d("map", map.toString());
arraylist1.add(map);
Log.e("asdasd", arraylist1.toString());
}
for (int i = 0; i < arraylist.size(); i++) {
for (int j = 0; j < arraylist1.size(); j++) {
if (!(arraylist.get(i).get("id")).equals((arraylist1.get(j).get("id")))) {
//Checking whether the last value in the list..
if (j == (arraylist1.size() - 1)) {
unCommonList.add(arraylist.get(i).get("alert_id"));
} else {
}
}
}
}
92 79
91 79
86 79
85 79
84 79
81 79
80 79
--每次arraylist2保持不变时,arraylist1都会发生变化,但arraylist2的值不是
--这是我的ArrayList 2:
[{abcd=100, id=79, createdate=2016-03-14 03:59:43, defge=2012310, 123123xyzw=alpha}, {abcd=11230, id=79, createdate=2016-03-14 03:59:43, defge=201231230, xyzw=alpasdha}, {abcd=10452430, id=79, createdate=2016-03-14 03:59:43, defge=12346, xyzw=alasdpha}, {abcd=1za00, id=79, createdate=2016-03-14 03:59:43, defge=212312300, xyzw=alpdsaha}, {abcd=112312300, id=79, createdate=2016-03-14 03:59:43, defge=21231200, xyzw=alpsqwha}, {abcd=123123, id=79, createdate=2016-03-14 03:59:43, defge=201231230, xyzw=alpqwreha}, {abcd=112312300, id=79, createdate=2016-03-14 03:59:43, defge=212312300, xyzw=alpyjha}, {abcd=101231230, id=79, createdate=2016-03-14 03:59:43, defge=200, xyzw=alpha}]
for(int i=0;i
for(int i=0;i
好的,所以要获取不匹配元素,您可以尝试以下代码
ArrayList<Integer> results = new ArrayList<>();
for (Person person2 : arrayList2) {
boolean found = false;
for (Person person1 : arrayList1) {
if (person2.id == person1.id) {
found = true;
}
}
if (!found) {
results.add(person2.id);
}
}
ArrayList结果=新建ArrayList();
for(Person person2:arrayList2){
布尔值=false;
for(Person person1:arrayList1){
if(person2.id==person1.id){
发现=真;
}
}
如果(!找到){
结果。添加(person2.id);
}
}
好的,所以要获取不匹配元素,您可以尝试以下代码
ArrayList<Integer> results = new ArrayList<>();
for (Person person2 : arrayList2) {
boolean found = false;
for (Person person1 : arrayList1) {
if (person2.id == person1.id) {
found = true;
}
}
if (!found) {
results.add(person2.id);
}
}
ArrayList结果=新建ArrayList();
for(Person person2:arrayList2){
布尔值=false;
for(Person person1:arrayList1){
if(person2.id==person1.id){
发现=真;
}
}
如果(!找到){
结果。添加(person2.id);
}
}
unmonlist.add(arraylist.get(j.get(“警报id”)));你忘了你想要什么?asc/desc?@Ajay Pandya,你能演示一下吗?plz@NiravRanpara,第二个arraylist值没有更改。首先,我想知道您想要实现什么?unmonlist.add(arraylist.get(j.get(“alert_id”));你忘了你想要什么?asc/desc?@Ajay Pandya,你能演示一下吗?plz@NiravRanpara,第二个arraylist值没有更改。首先,我想知道您想要实现什么?如果我的arraylist还包含其他元素,该怎么办?相同的方法find=true,仅当require elements found时。您在我的代码中尝试过吗?因为查找布尔值对于添加元素非常重要。你看过我的arraylist日志了吗,每个id都是相同的。那么这个person2.id呢?我应该在这里提到什么?如果我的arraylist也包含其他元素怎么办?相同的方法found=true,仅当require-elements-found时。您是否在我的代码中尝试过它?因为查找布尔值对于添加元素非常重要。你看过我的arraylist日志了吗,每个id都是相同的。那么这个person2.id呢?我应该在这里提到什么?