我想了解如何在Java中的列表中的两个元素之间有效地插入元素。例如:
[0,5,5,1]
会变成
[0,5,4,5,1]
其中4已插入列表中。
实现此目的的推荐方法是什么(与将每个元素复制到新列表相反?)
答案 0 :(得分:9)
使用List<E>#add(int, E)
指定元素添加到列表的位置。
将指定元素插入此列表中的指定位置(可选操作)。将当前位置的元素(如果有)和右侧的任何后续元素移位(将其添加到索引中)。
因此,请按照您的示例(为方便起见使用Guava):
List<Integer> foo = Lists.newArrayList(0, 5, 5, 1);
foo.add(2, 4);
System.out.println(foo); // prints [0, 5, 4, 5, 1]