我想使用HashSet
從ApplicationInfo
對象列表中刪除重複項,我嘗試使用更高級的方法來完成此操作,而不是比較好的舊循環並進行比較。匿名重寫HashSet hashCode
我最近一直在學習Java中的匿名能力,我試圖在這裏應用,但我被卡住了。據我所知,equals()
只是使用hashCode()
方法來確定平等,從我可以收集我只需要覆蓋hashCode()
方法。
在ApplicationInfo
對象內有一個字段叫做packageName
,這是一個字符串,它是我希望HashSet
比較並排除任何重複項的唯一字段。
因爲我是Java新手,所以如果我理解這個權利,並且不管怎樣,我都會喜歡一些幫助。我意識到我可以延伸HashSet
並且這樣做,但我想嘗試這個匿名交易,所以我學到了一些東西。
如果我有一個包含ApplicationInfo對象的HashSet,我該如何根據packageName字段返回一個hashCode?
//Help me fix the below idea please
HashSet<ApplicationInfo> hs = new HashSet<ApplicationInfo>() {
@Override
public int hashCode() {
// How do I do this sort of thing
return this.packageName.hashCode();
}
};
好的,有道理。感謝您的快速回答。 – Kirk
我相信你的意思是ApplicationInfo pkg:packages –
@lukas:謝謝。怪C#的影響:) –