2010-05-27 10 views
2

List listDataClient;Inverser la liste <Object>

Ma classe DataCLient:

Client client; 
List<String> phoneNumber; 

i ont une deuxième liste

List<DataPhoneNumber> listPhoneNumber; 

Ma classe DataPhoneNumber:

String phoneNumber; 
List<Client> client; 

Dans mon code, je mets des données dans ma première liste mais maintenant Je veux inverser ma liste dans la seconde. Dans la première liste, j'ai un client avec x NumberPhone maintenant je veux avoir NumberPhone pour x Client

+0

Je suis toujours à la recherche de la question :-) –

+0

lol, Question: Comment puis-je faire l'inverse pour listDataClient? – Mercer

Répondre

1

Il semble que vous essayez de modéliser une relation many-to-many.

Une approche consisterait à créer une classe pour représenter explicitement cette relation: PhoneNumberAssociation; par exemple.

public class PhoneNumberAssociation { 
    private final Set<Client> clients; 
    private final Set<String> phoneNumbers; 

    public void addClient(Client client) { 
    this.clients.add(client); 
    } 

    public void addPhoneNumber(String phoneNumber) { 
    this.phoneNumbers.add(phoneNumber); 
    } 
} 

Je tendent à favoriser cette approche lorsque leur rôle est pas de parent ou un enfant manifeste dans la relation. Il est également plus simple que d'incorporer des listes dans plusieurs objets et d'enchaîner des appels à ajouter/supprimer selon qu'un numéro de téléphone est ajouté ou supprimé d'un client (ou inversement si un client est ajouté/retiré d'un numéro de téléphone).

+0

Devrait-il vraiment avoir des ensembles? – aioobe

+0

oui ressemble à plusieurs-à-plusieurs relation. – Mercer

+0

Les ensembles sont plus appropriés IMHO car ils empêchent les doublons. Les gens ont tendance à utiliser les listes par habitude, même s'ils ne sont pas toujours obligatoires. Je fais une hypothèse ici bien sûr; le PO peut prétendre différemment. – Adamski

Questions connexes