Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按公用键对对象分组_Java_List_Map - Fatal编程技术网

Java 按公用键对对象分组

Java 按公用键对对象分组,java,list,map,Java,List,Map,我有一份顾客名单。每个客户都有一个地址,有些客户实际上可能有相同的地址。我的最终目标是根据客户的地址对其进行分组。我想我可以将客户放在某种基于列表的结构中,并根据地址进行排序,或者我可以将对象放入某种允许每个键有多个值的映射中 我现在要画一幅美丽的图画: List: A1 - C1, A1 - C2, A2 - C3, A3 - C4, A3 - C5 Map: A1 A2 A3 C1 C3 C4 C2 C5 您认为哪种选择(或任何其他)是最佳解决方案?是否有任何现有类可以简化开发?您

我有一份顾客名单。每个客户都有一个地址,有些客户实际上可能有相同的地址。我的最终目标是根据客户的地址对其进行分组。我想我可以将客户放在某种基于列表的结构中,并根据地址进行排序,或者我可以将对象放入某种允许每个键有多个值的映射中

我现在要画一幅美丽的图画:

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

Map:
A1 A2 A3
C1 C3 C4
C2    C5

您认为哪种选择(或任何其他)是最佳解决方案?是否有任何现有类可以简化开发?

您可以使用
Map
,其中
K
是地址,
V
是客户。另一个选项是,它是
Map

的一个更方便的包装器。您可以使用
Map
,其中
K
是地址,
V
是客户。另一个选项是,它是
Map

的一个更方便的包装器,您可以使用Lambdaj的group方法来实现这一点。大概是这样的:

Group<Customer> custByAddr = group(customers, by(on(Customer.class).getAddress().getId())
Group custByAddr=Group(客户,通过(on(Customer.class).getAddress().getId())
然后,您可以通过调用
custByAddr.find(“addressId1”)

请阅读分组项目部分中的详细信息


我还没有测试过这个,但它应该给你一个起点。我已经使用过LambdaJ很多次了,它非常有用。

你可以使用LambdaJ的分组方法来完成这项工作。类似这样:

Group<Customer> custByAddr = group(customers, by(on(Customer.class).getAddress().getId())
Group custByAddr=Group(客户,通过(on(Customer.class).getAddress().getId())
然后,您可以通过调用
custByAddr.find(“addressId1”)

请阅读分组项目部分中的详细信息

我还没有测试过这个,但它应该给你一个起点。我已经使用过LambdaJ很多次了,它非常有用