最近做checkbox預設勾選的時候,涉及到兩個list直接比較彼此物件的id屬性是否相同的問題。
bean類:
public class bean
public void setname(string name)
public string getid()
public void setid(string id)
public string getch()
public void setch(string ch)
}
造出兩個list:
bean b1 = new bean();
b1.setid("1");
b1.setname("n1");
bean b2 = new bean();
b2.setid("2");
b2.setname("n2");
bean b3 = new bean();
b3.setid("3");
b3.setname("n3");
bean b4 = new bean();
b4.setid("4");
b4.setname("n4");
bean b5 = new bean();
b5.setid("2");
b5.setname("n2");
bean b6 = new bean();
b6.setid("1");
b6.setname("n1");
listla = new arraylist();
la.add(b1);
la.add(b2);
la.add(b3);
la.add(b4);
listlb = new arraylist();
lb.add(b5);
lb.add(b6);
寫乙個測試的main方法:
for(int i=0;i輸出結果是:
eeee1-----
eeee2-----
eeee3-----
eeee4-----
這結果完全不是自己想要的,查了一下,list.contains(o),系統會對list中的每個元素e呼叫o.equals(e),方法,假如list中有n個元素,那麼會呼叫n次o.equals(e),只要有一次o.equals(e)返回了true,那麼list.contains(o)返回true,否則返回false,控制台列印了一下直接返回的false,頓時明白了什麼。
不多說,再重新修改下
for(int i=0;i輸出結果:
eeee1-----ch
eeee2-----
eeee3-----
eeee4-----
這結果還是不對啊,無奈想到了debug斷點除錯,發現問題了,再次修改一下了。
for(int i=0;i輸出結果
eeee1-----ch
eeee2-----ch
eeee3-----
eeee4-----
總結出一點,有時候我腦子挺容易短路的。
兩個List比較各自物件的屬性相同的問題
最近做checkbox預設勾選的時候,涉及到兩個list直接比較彼此物件的id屬性是否相同的問題。能力有限,想到這個笨方法。建立乙個bean public class bean public void setname string name public string getid public vo...
兩個物件屬性的比較
兩個物件的引用比較可以用equal 但是兩個物件的屬性比較就比較麻煩一些,寫乙個方法,僅供參考 1 public static bool propertyequals object aobject1,object aobject2 2 27 28else if vobject1 is list vo...
python比較兩個list
自己寫的,耗時很長。當兩個list是100000級別長度的資料時,需要好幾分鐘 if jpg not in list2 paython自帶方法。速度很快 list3 list set3 初始化資料 lista zhangsan lisi wangwu listb zhangsan lisi zhao...