gpt4 book ai didi

java - 线程中的异常 "main"java.lang.IndexOutOfBoundsException : Source does not fit in dest

转载 作者:行者123 更新时间:2023-12-02 18:20:41 26 4
gpt4 key购买 nike

我有对象:

static class Truck {

ArrayList<Integer> route = new ArrayList<Integer>();
double weight = 0;
int route_weight = 0;

Truck() {
}

Truck(ArrayList<Integer> route) {
Collections.copy(this.route, route);
}

//getters and setters
}

拉入此列表的对象:

static ArrayList<Truck> trucks=new ArrayList<Trucks>();

我正在尝试制作列表的完整副本:

        ArrayList<Truck> copy=new ArrayList<>();
copy=cloneList(trucks);
    public static ArrayList<Truck> cloneList(ArrayList<Truck> trucksList) {
ArrayList<Truck> clonedList = new ArrayList<Truck>();
for (Truck truck : trucks) {
Truck w=new Truck(truck.getroute());
clonedList.add(w);
}
return clonedList;
}

但是我收到错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Source does not fit in dest

getroute 返回:

[0, 9, 11, 1, 15, 3, 0]

最佳答案

除了 greg-449 的回答之外,我想指出的是,您也可以在构造函数中使用 ArrayList 创建它,而不是在声明它时直接创建它。 code> 构造函数,它接受另一个列表作为其参数。

这会将您的代码更改为:

Truck() {
this.route = new ArrayList<>();
}

Truck(ArrayList<Integer> route) {
this.route = new ArrayList<>(route);
}

新创建的列表将以相同的顺序包含 route 列表中的所有元素。

关于java - 线程中的异常 "main"java.lang.IndexOutOfBoundsException : Source does not fit in dest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70915705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com