日期:2014-05-20  浏览次数:20719 次

效率问题
这段代码可以优化吗,就是迭代一个list,把当中的对象的属性设到另外一个对象的属性上,再把另外的对象add到另外一个list中。上代码:

A.java
Java code

public class A {

    private String abc;
    private int a;
    private float ab;
    
    public String getAbc() {
        return abc;
    }
    public void setAbc(String abc) {
        this.abc = abc;
    }
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public float getAb() {
        return ab;
    }
    public void setAb(float ab) {
        this.ab = ab;
    }
}



B.java
Java code

private String abc;
    private int a;
    private float ab;
    
    public String getAbc() {
        return abc;
    }
    public void setAbc(String abc) {
        this.abc = abc;
    }
    public int getA() {
        return a;
    }
    public void setA(int a) {
        this.a = a;
    }
    public float getAb() {
        return ab;
    }
    public void setAb(float ab) {
        this.ab = ab;
    }



C.java
Java code

public class C {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        List<A> alist = new ArrayList<A>();
        List<B> blist = new ArrayList<B>();
        
        A a1 = new A();
        a1.setA(1);
        a1.setAb(1.1f);
        a1.setAbc("111");
        
        A a2 = new A();
        a2.setA(2);
        a2.setAb(1.2f);
        a2.setAbc("222");
        
        A a3 = new A();
        a3.setA(3);
        a3.setAb(1.3f);
        a3.setAbc("333");
        
        alist.add(a1);
        alist.add(a2);
        alist.add(a3);
        
        for(A a:alist){ // 此处是否可以优化,或者其他方法。其中A.java 和B.java属性方法都一样的,就类名不一样。
            B b = new B();
            b.setA(a.getA());
            b.setAb(a.getAb());
            b.setAbc(a.getAbc());
            blist.add(b);
        }
        
        for(B b:blist){
            System.out.println(b.getA());
            System.out.println(b.getAb());
            System.out.println(b.getAbc());
        }
        
    }

}



------解决方案--------------------
探讨
能解释下,为什么用构造方法吗,同样是new 一个对象,有什么区别吗?谢谢拉

------解决方案--------------------
为什么有两个内容都一样的类?设计的原理是什么?