2016-01-03 2 views
-4

У меня есть пользовательский объект, определенный здесь:Получить один элемент из ArrayList

public class ContactObject { 

    public String contactName; 
    public String contactNo; 
    public String image; 
    public boolean selected; 

    public String getName() { 
     return contactName; 
    } 

    public void setName(String contactName) { 
     this.contactName = contactName; 
    } 

    public String getNumber() { 
     return contactNo; 
    } 

    public void setNumber(String contactNo) { 
     this.contactNo = contactNo; 
    } 

    public String getImage() { 
     return image; 
    } 

    public void setImage(String image) { 
     this.image = image; 
    } 

    public boolean isSelected() { 
     return selected; 
    } 

    public void setSelected(boolean selected) { 
     this.selected = selected; 
    } 

} 

И я заселена в ArrayList этого пользовательского объекта (binderContacts), но сейчас я хочу, чтобы преобразовать его в обычный ArrayList со списком всех контактовNo в списке массивов. Может кто-нибудь помочь здесь?

public class ContactsListClass { 

    public static final ArrayList<ContactObject> phoneList = new ArrayList<ContactObject>(); 
    public static final ArrayList<ContactObject> binderContacts = new ArrayList<ContactObject>(); 
} 
+0

Ваше название не имеет особого смысла. ArrayList, который хранит элементы какого-либо типа, все еще ArrayList. Пожалуйста, исправьте его, чтобы лучше описать, чего вы хотите достичь. – Pshemo

+0

Также поля в классе ContactObject должны, скорее всего, быть закрытыми, а не публичными. – Pshemo

+0

Другое дело, что вы должны предпочесть [программу на интерфейсах] (http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface), а не ее конкретную реализацию , Поэтому ваши 'phoneList' и' binderContacts' должны быть типа 'List ', а не 'ArrayList '. Это даст вам больше гибкости, если вы захотите использовать другой список, чем ArrayList. – Pshemo

ответ

0

Предполагая, что вы используете Java 8:

ArrayList<String> contactNos = binderContacts.stream().map(contact -> contact.getNumber()).collect(Collectors.toList()); 
+0

'binderContacts.stream(). Map (ContactObject :: getNumber) .collect (Collectors.toList())' –

+0

'map (contact -> contact.getNumber())' возвращает 'Stream' не' List'. – Pshemo

+1

Привет, спасибо за вашу помощь, однако я разрабатываю приложение для Android и поэтому использую Java 7 –

0
List<String> contactNos = new ArrayList<String>(); 
for (ContactObject o : phoneList) { 
    contactNos.add(o.getNumber()); 
} 
Смежные вопросы