2010-04-07 22 views
1

我有一个客户列表。每个客户都有一个地址,一些客户实际上可能拥有相同的地址。我的最终目标是根据他们的地址对客户进行分组。我想我可以把客户放在某种基于列表的结构中,并按照地址进行排序,或者我可以将这些对象放到某种允许每个键有多个值的映射中。通过公钥组对象组

现在我会做出漂亮的图片:

List: 
A1 - C1, A1 - C2, A2 - C3, A3 - C4, A3 - C5 

Map: 
A1 A2 A3 
C1 C3 C4 
C2 C5 

哪个选项(或其他任何)您认为最好的解决办法?是否有任何现有的类可以使开发更容易?

回答

1

您可以使用Lambdaj的组方法完成此操作。事情是这样的:

Group<Customer> custByAddr = group(customers, by(on(Customer.class).getAddress().getId()) 

你可以再由小组通过调用custByAddr.find("addressId1")

了解更多在分组项目部分http://code.google.com/p/lambdaj/wiki/LambdajFeatures得到客户的名单。

我没有测试过这个,但它应该给你一个开始的地方。我多次使用了LambdaJ,这非常有用。