如何逐个添加ArrayList元素至目标列表并保持固定长度?
实现方法
看起来你想要的是遍历NAMA列表中的每个元素,每次生成一个长度为5的LENGKAP列表(原始4个元素加上当前NAMA元素),或者在同一个列表上动态更新来保持长度5。下面给你两种实用的Java实现方式:
方式一:生成独立的新列表(保留原始列表)
这种方式不会修改原始的LENGKAP,每次循环都会创建一个全新的长度为5的列表,完全匹配你给出的示例输出:
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { // 初始化两个列表 List<String> NAMA = new ArrayList<>(List.of("Upi", "Qori", "Wulan", "Indah")); List<String> originalLENGKAP = new ArrayList<>(List.of("Meidina", "Aisyah", "Febiarty", "Windari")); // 遍历NAMA中的每个元素 for (String nama : NAMA) { // 基于原始LENGKAP创建新列表 List<String> currentLENGKAP = new ArrayList<>(originalLENGKAP); // 添加当前NAMA元素,使列表长度变为5 currentLENGKAP.add(nama); // 输出当前结果 System.out.println(currentLENGKAP); } } }
运行这段代码后,输出结果就是:
[Meidina, Aisyah, Febiarty, Windari, Upi]
[Meidina, Aisyah, Febiarty, Windari, Qori]
[Meidina, Aisyah, Febiarty, Windari, Wulan]
[Meidina, Aisyah, Febiarty, Windari, Indah]
方式二:复用同一个列表(动态替换最后元素)
如果希望复用同一个LENGKAP对象,不需要每次创建新列表,可以通过替换最后一个元素来保持长度始终为5:
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String> NAMA = new ArrayList<>(List.of("Upi", "Qori", "Wulan", "Indah")); List<String> LENGKAP = new ArrayList<>(List.of("Meidina", "Aisyah", "Febiarty", "Windari")); // 先处理第一个元素,让列表长度变为5 if (LENGKAP.size() == 4) { LENGKAP.add(NAMA.get(0)); System.out.println(LENGKAP); // 遍历剩余元素,替换最后一个位置 for (int i = 1; i < NAMA.size(); i++) { LENGKAP.set(LENGKAP.size() - 1, NAMA.get(i)); System.out.println(LENGKAP); } } } }
补充说明
如果你的LENGKAP初始长度不确定(比如不是4),可以额外添加逻辑调整:比如如果长度超过4,先截断到前4个元素;如果不足4,可以先补充元素(不过根据你的描述,初始是4个元素,所以上面的代码已经满足需求)。
内容的提问来源于stack exchange,提问作者Lutfi Meidina
相关产品推荐
相关产品推荐

