兩個List比較各自物件的屬性相同的問題

2021-08-27 22:06:55 字數 1588 閱讀 6294

最近做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...