我已经使用公共密钥从3个不同的表中收集了记录,即三个表的公共列,并分别存储在3个列表中。
Query query2 = s.createQuery("from StuPersonal where FRID = :dd");
query2.setParameter("dd",jp.getFRID());
per=query2.list();
Query query3 = s.createQuery("from StuDegree where FRID = :dd");
query2.setParameter("dd",jp.getFRID());
deg=query3.list();
Query query4 = s.createQuery("select city from StuWorkPref where FRID = :dd");
query2.setParameter("dd",jp.getFRID());
swf=query4.list();
现在,我需要将3列表中的字段(列)合并为一个列表,并且需要将输出提供给用户...有什么办法吗?请指教..
我已经宣布清单为
List<StuPersonal> per=new ArrayList();
List<StuDegree> deg=new ArrayList();
List<StuWorkPref> swp=new ArrayList();
最佳答案
您可以使用addAll方法连接两个Arraylist。它将参数化列表的所有成员添加到调用列表。
对于您的情况,您将需要所提到的三个类的超类。
List<Superclass> finalList=new ArrayList();
finalList.addAll(per);
finalList.addAll(deg);
finalList.addAll(swp);
换句话说,您可以将派生类对象存储在基类的ArrayList中。使用这种方法可以使设计变得更简洁,因为您可以在您的超类中使用通用方法,并让派生类重用它们。以后,您可以为派生类提供重写的方法,以对单个对象执行特定于类的操作。