我的代码:
ArrayList<CellNode> updateSubTour(ArrayList<CellNode> subTour, ArrayList<CellNode> fromTo){
int i = subTour.indexOf(fromTo.get(0));
ArrayList<CellNode> leftTour = subTour.clone();
ArrayList<CellNode> rightTour = subTour.clone();
leftTour.add(leftfromI,fromTo.get(1);
rigthTour.add(rightfromI,fromTo.get(1);
shorterTour = compare(rigthTour.distance,leftTour.distance)
return shorterTour;
}
fromTo是一种Pair,第一个Element是subTour中的元素,第二个是我要插入的元素。
我在subTour中有一个元素,我将使用indexOf函数找到Index。 现在,我需要在i左侧和i右侧插入元素[fromTo.get(1)]。
我没有找到一种在不覆盖其他元素的情况下插入元素的解决方案。
提前, 蒂姆
答案 0 :(得分:2)
您的示例需要一些清理,但我相信我会按照您的要求进行。假设您在列表中List l
的位置E
处有一个元素i
,并且要将对象O
添加到列表中。通过执行l.add(i, O)
,O
将被插入E
之前。进行l.add(i+1, O)
会将O
插入E
之后。