我已经使用公共密钥从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中。使用这种方法可以使设计变得更简洁,因为您可以在您的超类中使用通用方法,并让派生类重用它们。以后,您可以为派生类提供重写的方法,以对单个对象执行特定于类的操作。

07-24 09:49
查看更多