首页 > 解决方案 > java - 如何使用来自不同数据类型的其他列表的值填充java中的列表?

问题描述

我有两个类型列表List<A>List<B>. 现在,我要做的是创建一个List<C>,其值将从其他两个列表中读取。我尝试并实现了这样的东西。

public void fileUpload(int customerId) throws SQLException, IOException {
    myList = myTiedosto.getFileDetails(customerId);
    attachmentDetails = myAttachment.getAttachmentDetails(customerId);
    List<Upload> uploadList = new ArrayList<>();
    for (Attachment attachment : attachmentDetails) {
        Upload upload = new Upload();
        upload.setUuid(attachment.getUuid());
        for (Tiedosto tiedosto : myList) {
            upload.setCustomerId(tiedosto.getCustomerId());
            upload.setFileName(tiedosto.getFileName());
            upload.setFileSize(tiedosto.getFileSize());
            upload.setContent(tiedosto.getContent());
        }
        uploadList.add(upload);
    }
    for (Upload myUploadList : uploadList) {
        System.out.println(myUploadList.getCustomerId()+" " +myUploadList.getFileName()+" "+myUploadList.getUuid()+" "+myUploadList.getFileSize());
    }
}

当我运行它时,myUploadList 两次返回相同的条目。 输出

我是 Java 新手,非常感谢一些帮助。

标签: javalist

解决方案


根据您的评论,您应该创建Upload实例并将其添加到List内部循环内的输出中:

for (Attachment attachment : attachmentDetails) {
    for (Tiedosto tiedosto : myList) {
        Upload upload = new Upload();
        upload.setUuid(attachment.getUuid());
        upload.setCustomerId(tiedosto.getCustomerId());
        upload.setFileName(tiedosto.getFileName());
        upload.setFileSize(tiedosto.getFileSize());
        upload.setContent(tiedosto.getContent());
        uploadList.add(upload);
    }  
}

Upload这将从每对Attachment和创建一个实例Tiedosto

编辑:

根据您的最新评论,最好使用传统的 for 循环,因为您想Upload从每对AttachmentTiedosto具有相同索引的实例创建一个实例:

for (int i = 0 ; i < attachmentDetails.size(); i++) {
    Tiedosto tiedosto = myList.get(i);
    Upload upload = new Upload();
    upload.setUuid(attachmentDetails.get(i).getUuid());
    upload.setCustomerId(tiedosto.getCustomerId());
    upload.setFileName(tiedosto.getFileName());
    upload.setFileSize(tiedosto.getFileSize());
    upload.setContent(tiedosto.getContent());
    uploadList.add(upload); 
}

推荐阅读