最近做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-----
总结出一点,有时候我脑子挺容易短路的。
?