如何将List填充至3个元素且不覆盖已有值?
实现List固定保留3个元素(保留原有内容,不足补默认值)
你提到用Collections.fill(items, "fallback")会覆盖原有"item"值,这是因为这个方法的作用是把List中所有已存在的元素都替换成指定值,完全不符合你要保留原有内容的需求。
要实现保留已有元素、不足3个时用"fallback"补全的效果,可以直接计算需要补充的元素数量,然后批量添加:
方法一:循环添加
List<String> items = ...; // 你的原始List int needToAdd = 3 - items.size(); for (int i = 0; i < needToAdd; i++) { items.add("fallback"); }
方法二:用Collections工具类批量添加
List<String> items = ...; // 你的原始List int needToAdd = 3 - items.size(); if (needToAdd > 0) { // 生成指定数量的重复元素集合,一次性添加 items.addAll(Collections.nCopies(needToAdd, "fallback")); }
这两种方式都能完美匹配你的需求:
- 当原始List已有3个元素时,不做任何修改;
- 当原始List有2个元素时,补充1个"fallback";
- 当原始List为空时,补充3个"fallback"。
内容的提问来源于stack exchange,提问作者sandrooco
相关产品推荐
相关产品推荐

