整数java的deque列表

时间:2012-04-10 11:32:26

标签: java list deque

这是我的SSCCE

http://pastebin.com/rABzKgAx

http://pastebin.com/SypQxApe

我正在尝试使用数据结构列表Deque of Integer。

所以我在deque中添加了几个整数,然后将它添加到finalList,但由于我使用Deque进一步操作并删除元素,因此它也会从finalList中删除这些元素。那么我该如何将这些物品保存到列表中呢?因为例如,我向finalList添加了30个元素,但由于我从Deque中删除了原始项目,因此我在finalList中只有30个空元素:/。您可以从代码中读取其余内容,在第57行,stdout上有一个输出,ant它返回空字符串,因此您可以看到问题。

所以问题是我只复制对象的引用,而不是对象,所以我该如何复制对象?

2 个答案:

答案 0 :(得分:1)

final仅表示该变量以后无法更改为指向另一个列表,并不意味着该列表无法更改。如果您需要原始列表,则必须在更改之前复制它。

答案 1 :(得分:1)

这是使用调试器的有用之处。

您正在使用

finalList.add(tokens);

并假设您已添加了列表的副本,但您只是将该引用的副本添加到列表中。

所以

            tokens.add(token);
            Func(places, index+1, tokens);
            tokens.removeLast();

删除它添加的每个元素,列表为空。

看起来你想要的是

        finalList.add(new LinkedList<Integer>(tokens));