Если вы действительно хотите сохранить пару ArrayLists, один содержащий Person
объектов, а другие, содержащий Name
свойства объектов человека, вы всегда можете создать еще один класс:
public class PersonList {
private ArrayList<Person> people;
private ArrayList<String> names;
public PersonList() {
people = new ArrayList<>();
names = new ArrayList<>();
}
public PersonList(ArrayList<Person> p) {
people = p;
names = new ArrayList<>();
for(Person person : p) {
names.add(p.getName());
}
}
public ArrayList<Person> getPeople() {
return people;
}
public ArrayList<String> getNames() {
return names;
}
public void add(Person p) {
people.add(p);
names.add(p.getName());
}
public Person getPerson(int index) {
return people.get(index);
}
public String getName(int index) {
return names.get(index);
}
// more methods to continue to replicate the properties of ArrayList...
// just depends what you need
}
Вы придется продолжать добавлять методы в этот класс, чтобы этот класс мог делать все, что вы можете сделать на одном ArrayList
. И действительно, этот класс - это просто удобный способ упростить работу с двумя разными ArrayLists
одновременно.
Во всяком случае, теперь в главном коде, вы можете создать экземпляр объекта PersonList
вместо списка массива:
PersonList people = new PersonList();
И добавить к people
. Или вы могли бы даже просто использовать обычный список массива вверх, пока не понадобится список имен, и экземпляр PersonList
с другим конструктором я предоставил:
// Assuming ArrayList<People> arrPeople exists...
PersonList people = new PersonList(arrPeople);
А теперь people
объекта будет содержать ArrayList
идентичны arrPeople
, а а также соответствующий список names
, содержащий все имена. И независимо от того, как вы создаете экземпляр PersonList
, вызывая метод add
на PersonList
(тот же синтаксис, что и ArrayList
, если вы правильно настроили этот класс), и он сохранит оба списка массивов, которые управляет класс в синхронизации.
Зачем вам нужен отдельный список массивов? Что не так с '(people.get (index)). GetName()'? – nhgrif
Epickel, мой ответ может обеспечить удобный способ хранения двух массивов в синхронизации, если у вас должны быть оба массива. – nhgrif