Я довольно новичок в Java, поэтому надеюсь, что правильно объясню этот сценарий.Как скопировать объект списка в качестве указателя на исходный объект
Я пытаюсь скопировать объект List, но хочу, чтобы мой второй экземпляр указывал на тот же объект, что и первый объект List. Единственная причина, по которой мне нужны две копии, - это то, что мне нужно перебирать каждую из них самостоятельно. Я пытался найти способ и даже попросил нескольких коллег, но единственное, что работает, - это создать еще один объект.
Любая помощь будет очень оценена.
Спасибо, Christine
Update: Вот пример того, что я пытаюсь сделать:
Это как я в настоящее время списки заявил:
List monetaryTransactions = null;
//make a copy of the monetary trans list for use when info is needed about a parent transaction
List parentMonetaryTransactions = new ArrayList(monetaryTransactions);
And this is how I'm using them:
//THE monetaryTransactions LIST IS POPULATED AND THEN.....
//loop through the monetary transactions list
for (Iterator iter = monetaryTransactions.iterator(); iter.hasNext();) {
monetaryTransaction = (IMonetaryTransaction) iter.next();
.....
//if there is a parent transaction get info about that transaction
if (monetaryTransaction.getParentBillingTransactionId() != null) {
//get the parent billing trans id of the current monetary transaction
parentBillingTransId = monetaryTransaction.getParentBillingTransactionId();
IT'S THIS SECOND SORT AND ITERATION THAT I NEED TO MAKE SURE DOES NOT AFFECT MY OUTTER LOOP'S ITERATION
Collections.sort(parentMonetaryTransactions, new MonetaryTransactionOriginalProcessDateDescOrderComparator());
//loop through parent monetary trans list to find the parent transaction
for (Iterator iter2 = parentMonetaryTransactions.iterator(); iter2.hasNext();) {
parentMonetaryTransaction = (IMonetaryTransaction) iter2.next();
.......
}
}
}
Похоже, что вы, возможно, захотите объяснить свою фактическую проблему. – Marvin
Я пытаюсь понять, почему вы хотите переименовать оба списка с одинаковыми данными? Если есть прямая ссылка на эти объекты, тогда возникнет проблема, называемая ConcurrentModificationException, которая может возникнуть при попытке изменить. –
Я не буду изменять ни один из них.Мне в основном нужно перебирать список, сначала оценивая каждую транзакцию, а затем в определенных точках мне может потребоваться повторить этот же список, но на этот раз ищет родительскую транзакцию транзакции, с которой я работаю в первом цикле, и мне нужно возможность сортировать и управлять каждым итератором самостоятельно. – Christine