为了账号安全,请及时绑定邮箱和手机立即绑定

将向量保存在列表中的方法

将向量保存在列表中的方法

芜湖不芜 2021-12-30 16:28:32
我的 TSP 算法有问题。我将插入代码并解释:List listOfPermutations = new ArrayList();while (cont.compareTo(deleteRutes) < 0) {     listOfPermutations.add(indexOfCities);    nextPermutation(indexOfCities);    ....我遇到的问题如下,我的想法是在一个列表中插入所有可能的排列(数组),但问题是列表总是取数组的相同值,这是合乎逻辑的,因为 indexOfCities 数组只是一。我已经退还了一段时间,我不知道如何解决。有人能帮我吗?
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

indexOfCities持有对数组的引用。这个相同的引用作为项目添加到listOfPermutationswith

listOfPermutations.add(indexOfCities);

在每次循环迭代中。

然后数组被修改为

nextPermutation(indexOfCities);

在每次循环迭代中。所以存储的引用都指向同一个修改过的数组。

为了解决这个问题,在加入数组的副本indexOfCitieslistOfPermutations代替。例如像这样:

int[] indexOfCitiesAux = indexOfCities.clone();
listOfPermutations.add(indexOfCitiesAux);


查看完整回答
反对 回复 2021-12-30
  • 1 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信