2010-05-27 51 views
2

List listDataClient;反向列表<Object>

我班DataCLient:

Client client; 
List<String> phoneNumber; 

我有第二个列表

List<DataPhoneNumber> listPhoneNumber; 

我班DataPhoneNumber:

String phoneNumber; 
List<Client> client; 

在我的代码,我把数据在我的第一个列表中,但现在我想在第二个我的名单。在第一个列表中,我有一个带有NumberPhone的客户端,现在我想要为客户端提供数字电话

+0

我仍然在寻找这个问题:-) – 2010-05-27 15:53:53

+0

哈哈,问题:我该如何做相反的listDataClient? – Mercer 2010-05-27 15:54:40

回答

1

这听起来像是您试图模拟多对多关系。

一种方法是创建一个类来明确表示这种关系:PhoneNumberAssociation;例如

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); 
    } 
} 

当他们在关系中没有明显的父母或小孩角色时,我倾向于赞成这种方法。它比在多个对象中嵌入列表还要简单,并且必须根据是否将电话号码添加到客户端/从客户端中删除电话号码来添加/删除电话号码(或者相反,如果正在将客户端添加到电话号码或从电话号码中删除)。

+0

它应该真的有套? – aioobe 2010-05-27 15:53:10

+0

是看起来像多对多的关系。 – Mercer 2010-05-27 15:53:22

+0

集合更适合恕我直言,因为它们可以防止重复。尽管订购并不总是被要求,但人们倾向于使用习惯列表。我当然在这里做一个假设; OP可能会有不同的主张。 – Adamski 2010-05-27 15:55:39