Как скопировать переменную ListCollectionView в новую переменную ListCollectionView по значению (а не ссылку)?Flex/ActionScript: как скопировать переменную ListCollectionView по значению (а не ссылку)?
Т.е. изменения в новой переменной ListCollectionView не должны влиять на исходную переменную ListCollectionView (и наоборот).
Конечная цель состоит в том, чтобы иметь 2 переменные ListCollectionView, указывающие на один и тот же ArrayList, но обновления одной переменной ListCollectionView не влияют на другую переменную ListCollectionView.
UPDATE 1
Вот один из способов я нашел, чтобы сделать это, хотя я не уверен, если это чистейший или наиболее эффективным способом.
LCV2=new ListCollectionView(new ArrayList());
for (var ii:int=0; ii<LCV1.length; ii++) {
var item:Object=LCV1[ii];
LCV2.list.addItem(item);
}
Как вы заявляете вопрос, это совершенно невозможно, потому что вы оба хотите, чтобы указывать на один и тот же базовый список/объекты, но вы не хотите изменения, внесенные с помощью одного до тех базовых объектов, которые будут отражено другой. У вас должна быть «глубокая копия», которая клонирует все объекты в базовом списке и предоставляет этот скопированный список в качестве аргумента для другого ListCollectionView, если вы хотите, чтобы они не изменяли друг друга. – shaunhusain
Возможно, я не правильно сформулировал это. Изменения в ArrayList отражаются в переменных ListCollectionView. Однако изменения одной переменной ListCollectionView (например, removeAll()) не влияют на другую переменную ListCollectionView. Я начинаю с одной переменной ListCollectionView, и мне нужна вторая переменная ListCollectionView, которая начинается с того же списка, что и первая переменная ListCollectionView, но после этого действует независимо. – ggkmath
ах ладно, в этом случае вы заявляете это правильно, я просто неправильно понял ваш смысл ... поэтому я думаю, что вы можете просто listCollection2.addAll (listCollection1.list); Я напишу это в ответ – shaunhusain