2013-01-02 23 views
0

我想要實現的Java代碼基於相似的屬性組項目。說我有客戶的陣列哪些商店跟隨着信息名稱,城市,語言,租車,公司Java的算法組對象基於性能

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

+0

也就是說,和組如何(即,你怎麼想檢索不同羣體的項目)?有一個「簡單的」基於Map的解決方案。 – fge

+0

嘗試喲構造不同套的話從字典,重新排序的每個對象的特性,並比較之後,與集實例。 – user1929959

回答

2

有效地做到這一點,似乎你的匹配性能,不類似性質意味着組。差別很大,這個問題很簡單。

我建議你所有排序的三個標準的項目,然後就組中的單次的項目。只需將當前項目添加到當前組中,如果它匹配所有3個屬性,則將其添加到新組中,並將該組命名爲「當前組」。

另一種選擇是哈希使用三個屬性的對象和創建組出相等的哈希對象(你將不得不設備的方式來處理衝突,有很多方法可以做到這一點)。因爲它似乎是你願意使用的分組被列舉的屬性值,你甚至可以以避免衝突(如果可能的組合有足夠的少數)。

+1

+1我同意。如果你想*類似的特性* k-means算法可以爲你做。 – amit