我想在LinkedList ar的索引1处插入值(10,10)。我想让值(1,1)移动到节点上为(10,10)腾出空间。最快的方法是什么?我可以使用不同的数据结构来获得更好的结果吗?
LinkedList<Point> ar = new LinkedList<Point>();
ar.add(new Point(0,0));
ar.add(new Point(1,1));
ar.add(new Point(2,2));
ar.set(1,new Point(10,10));
for (int i=0;i<3; i++){
System.out.println(ar.get(i));
}
set(...)
方法替换项。您应该使用add(int index, Object o)
重载方法在特定索引处插入项,而不是替换项。
对于LinkedList
使用此方法的代价取决于您需要迭代到达目标目的地的距离。使用ArrayList
,价格可能会创建更大的后备数组,并将索引中的所有元素移到目标之后。(始终检查相应的List
实现)