2016-04-04 1 views
0

d'objet existant considérons que nous avons cette classe:Générer tableau à partir de l'attribut

public class Person 
{ 
    public String name; 
    public String lastname; 
} 

Supposons que nous ayons collection pour cette classe Person. Comment puis-je générer une nouvelle collection de chaînes contenant seulement lastnames? Nous pouvons le faire facilement en itérant, mais je cherche le moyen le plus efficace de le faire.

En raison de certaines dépendances, je ne peux pas utiliser Java 8.

+0

Google: Carte de flux Java – Prashant

+1

"Nous pouvons le faire facilement en itérant mais en recherchant le moyen le plus efficace de le faire." Par le plus efficace, voulez-vous dire moins de code ou de performance? Parce que même si vous pouvez en faire un one-liner avec les flux de cartes de Java8, il fera toujours une boucle dans les coulisses. –

+0

à la recherche de meilleures solutions de performance en réalité. –

Répondre

0

Utilisez une boucle et initialiser votre collection cible avec la bonne taille:

String[] lastnames = new String[persons.size()]; // or new ArrayList(persons.size()), ... 
for(int i=0;i<persons.size();i++){ 
    lastnames[i] = persons.get(i).getLastName(); 
} 

Ce serait efficace (O (n)) si un accès direct est possible dans les deux collections (personnes et noms de famille).