1

我想实现 java 代码来根据相似的属性对项目进行分组。假设我有一系列客户存储以下信息 Name , City , Language , Car , Company

Customer1= { Mahesh, Mumbai , Hindi , Maruti , Infy}
Customer2= { Robin, Mumbai, English , Honda , Wipro}
Customer3 = { Mahek, Mumbai, Hindi, Maruti, Wipro}
Customer4 = { Rohit, Mumbai, English, Honda, Infy}
Customer5 = { Yogesh, Delhi, English, Honda, ''}
Customer6 = { Alpesh, Delhi, English, '', TCS}
Customer7 = { Mark, Delhi, English, '', WIPRO}

现在我正在寻找的是我可以创建一组具有相似城市、语言和汽车的客户

所以我应该有4组

Group 1 = Customer1 , Customer3
Group 2 = Customer2 , Customer4 
GROUP 3 = Customer5 
Group 4 = Customer6 ,Customer7

基本上我想根据一些类似的属性对项目进行分组。我如何在 Java 中有效地实现这一点

4

1 回答 1

3

看来您的意思是通过匹配属性而不是相似属性进行分组。差别很大,这个问题相当简单。

我建议您根据三个标准对所有项目进行排序,然后将这些项目分组一次。如果当前项目与所有 3 个属性匹配,只需将当前项目添加到当前组,否则将其单独放置在一个新组中并将该组命名为“当前组”。

另一种选择是使用这三个属性对对象进行散列,并从具有相等散列的对象中创建组(您必须设计一种方法来处理冲突,并且有很多方法可以做到这一点)。似乎枚举了您要用于分组的属性的值,您甚至可以避免冲突(如果可能的组合足够少)。

于 2013-01-02T16:43:48.060 回答