如何将两个arraylists组合成一个arraylist并将其传递给过程

时间:2015-03-21 09:59:47

标签: java arraylist

我需要你的帮助和助手将两个arraylists组合成一个新的arraylist来传递给一个程序。用户从类型A列表中选择证书后,它们将存储在:

private List<String> selectedTypeACertificates = new ArrayList<String>();

一旦用户从类型B中选择了证书,它们将存储在:

private List<String> selectedTypeBCertificates = new ArrayList<String>();

现在在程序中我只需要传递两个String变量。一个是职员代码,另一个是A类和A类的选定类型。乙

CallableStatement callableStatement =
    connection.prepareCall("{call processCertificates(?, ?)}");

callableStatement.setInt(1, Staff_Code);
callableStatement.setString   (2, ); //I need to pass selectedTypeBCertificates & selectedTypeACertificates

1 个答案:

答案 0 :(得分:0)

您可以将两个列表中的所有元素添加到新创建的元素中,然后使用StringBuilder构建字符串以将其传递给过程:

List<String> selectedCertificates = new ArrayList<String>();
selectedCertificates.addAll(selectedTypeACertificates);
selectedCertificates.addAll(selectedTypeBCertificates);

StringBuilder sb = new StringBuilder();
for (String cert : selectedCertificates)
{
    sb.append(cert);
    sb.append("','");
}

String certificatesString = sb.toString();
if(!certificatesString.isEmpty()) {
    certificatesString = "'" + certificatesString.substring(0, certificatesString.lastIndexOf(",")) + "'";
}

最后几行是删除尾随的逗号。当然,如果过程需要不同格式的字符串,您可能需要更改此项。