都做不到,因为frm和frmB是两个完全不同的数据结构。
你可以试想一下,如果这个可以做到,那么所有的数据类型是不是都可以做到?

解决方案 »

  1.   

    那如果,我有frm与frmB是一样的呢,都有sum1,sum2,sum3这些属性,只是在A、B、C里我不用它,这样可能以吗
      

  2.   

    ArrayList是个容器啊,按序号存对象,所以记得对象类型和序号就可以!
    恐怕存取用起来要花点力气!因为要型别检查,对了,可以用RTTI就可以!
      

  3.   

    要实现并不难只是item_id有三个,取哪一个??
      

  4.   

    Java里面没有方法能够做到。如果你只是想单纯放到新的ArrayList里面,只有new一个新的ArrayList,把旧的全部丢进去就行了。如果你想实现相同id累加,那么我建议你用Hashtable作为中间存储
    Hashtable tempTable = new Hashtable();
    constructNewTable(listA, tempTable);
    constructNewTable(listB, tempTable);
    constructNewTable(listC, tempTable);
    最后把Hashtable里面的元素都拿出来放到新的ArrayList里面
    public void constructNewTable(ArrayList aList, HastTable tTable) {
    for(int i=0; i<listA.size(); i++) {
        Frm tFrm = (Frm) aList.get(i);
        String itemId = tFrm.getId();
        Frm storeFrm = (Frm) tTable.get(itemId);
        if(storeFrm==null) {
            tTable.put(itemId, tFrm);
        } else {
            storeFrm.setSum(storeFrm.getSum()+tFrm.getSum());
        }
    }
      

  5.   

    楼主为什么非要用list啊,换个思路试试:class sum{
    String sum1;
    String sum2;
    String sum3;
    }
    public class test{
      String id ="";
      sum a = new sum();
      HastTable tTable  = new HashTable();
     for(....){
      id="...";
      a.sum1="...";
      a.sum2="...";
      a.sum3="...";
      tTable.put(id,a);
      }}