List存储对象显示都是最后一次数据

这段时间刷leetcode,在使用BackTrack解决问题的时候偶然发现了一个有意思的现象。
tmp遇到出口,添加到res中,但是结果却显示都是空。
List存储对象显示都是最后一次数据
List存储对象显示都是最后一次数据
为此我做了个小实验,B是我写的一个用于测试的匿名内部类,遍历list理论上应该输出1,2,但是答案却是2,2。然后我打印了下地址,可看到list存对象的时候,add并不是添加的对象本身,而是添加的对象地址,所以在第一次添加之后,我对b.id做了修改,自然而言在打印的时候,输出的也都是2了。解决方法就是每次都new一个对象用于保存数据。
List存储对象显示都是最后一次数据