有没有办法在添加/设置ArrayList的索引之间进行选择,具体取决于列表是否与索引一样大?

时间:2015-10-20 00:58:19

标签: java arraylist

根据ArrayList是否包含第3个元素,我需要替换它,或添加第3个元素。

我目前的情况:

import java.util.*;
public class ListReplace {
public static List<String> list = new ArrayList<>();

public static void main (String[] args){
    list.add("first");
    list.add("second");
    list.add("third");

    if (list.size() <= 3)
      list.add(3, "newVal");
    else 
      list.set(3, "newVal");
}

}

有更聪明的方法吗?没有在Guava Collections库中找到任何东西。

1 个答案:

答案 0 :(得分:0)

如果要插入的元素位于小于List大小的位置,如果插入位置大于大小,IndexOutOfBoundsExceptionRuntime

,则程序将起作用

如果索引小于

,以下代码将向列表添加null
    List<String> list = new ArrayList<>();
    list.add("One");
    list.add("Two");
    list.add("Three");
    int n = 5;
    if (list.size() >= n) {
        list.add(n, "new Three");
    } else {
        for (int i = list.size(); i < n; i++) {
            list.add(null);
        }
        list.add("new Value");
    }
    System.out.println(list);

<强>输出

n = 5 [One, Two, Three, null, null, new Value] n = 3 [One, Two, Three, new Three]