首页 > 解决方案 > Java 在特定索引之前和之后插入一个元素

问题描述

我的代码:

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 函数查找索引。现在我需要在 i 的左侧和 i 的右侧插入一个元素 [fromTo.get(1)]。

我没有找到在不覆盖其他元素的情况下插入元素的解决方案。

标签: javaarraylistinsert

解决方案


您的示例需要一些清理,但我相信我遵循您的要求。假设您在列表中有一个List l包含某个元素E的位置i,并且您想要将对象添加O到列表中。通过这样做l.add(i, O)O将插入之前E。做之后l.add(i+1, O)会插入。OE


推荐阅读