我有ArrayList
一些我在其中定义的对象.根据一些标准,我想将第一个列表中的一些对象复制到第二个列表(开始为空),但是我复制的这些对象可以被复制多次(可以是重复的).
为简化示例,假设我的第二个列表仅包含2个重复的对象.对象a和b.
如果我修改对象a中的某些内容,该修改是否也会出现在对象b上?它只是一个传递的引用或它是一个对象的副本?
for( int i = 0; i < Selected.size(); i++) { double chance = random.nextInt(100); chance = chance/100; if( chance >= constCrossover ) { Cross.add(Selected.get(i)); //here i add items that might be duplicates } }
我将在交叉列表中进行进一步修改,我不希望重复的对象与每个人交互.
它始终是一个参考.表达式的值,数组中的值等始终是引用值或原始值.没有什么会隐式复制一个对象 - 你必须明确地这样做.
(顺便说一句,你应该遵循Java命名约定 - Selected
而且Cross
应该是selected
和cross
.)