最近做checkbox默认勾选的时候,涉及到两个list直接比较彼此对象的Id属性是否相同的问题。
Bean类:
?
class="java">public class Bean {
private String name;
private String id;
private String ch;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCh() {
return ch;
}
public void setCh(String ch) {
this.ch = 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");
List<Bean> la = new ArrayList<Bean>();
la.add(b1);
la.add(b2);
la.add(b3);
la.add(b4);
List<Bean> lb = new ArrayList<Bean>();
lb.add(b5);
lb.add(b6);
写一个测试的main方法:
for(int i=0;i<la.size();i++){
if(lb.contains(la.get(i).getId())){
la.get(i).setCh("ch");
}
else{
la.get(i).setCh(" ");
}
System.out.println("eeee"+la.get(i).getId()+"-----"+la.get(i).getCh());
}
输出结果是:
eeee1-----for(int i=0;i<la.size();i++){
for(int k=0;k<lb.size();k++){
if(lb.get(k).getId().equals(la.get(i).getId())){
la.get(i).setCh("ch");
}
else{
la.get(i).setCh(" ");
}
}
System.out.println("eeee"+la.get(i).getId()+"-----"+la.get(i).getCh());
}
输出结果:for(int i=0;i<la.size();i++){
for(int k=0;k<lb.size();k++){
if(lb.get(k).getId().equals(la.get(i).getId())){
la.get(i).setCh("ch");
break;
}
else{
la.get(i).setCh(" ");
}
}
System.out.println("eeee"+la.get(i).getId()+"-----"+la.get(i).getCh());
}
输出结果
eeee1-----ch
eeee2-----ch
eeee3-----
eeee4-----
总结出一点,有时候我脑子挺容易短路的。
?