我有一個TreeSet其中的元素有兩個屬性(姓名和年齡)的對象。每次我想要搜索具有特定名稱的對象時,我都必須使用增強型for循環或迭代器。無法使用TreeSet中的contains()方法
我不能使用方法來搜索具有特定名稱的對象,因爲這個名字是此對象中「封裝」。
有沒有辦法解決這個問題?那就是利用log(n)
時間複雜度的一種方法?
由於在TreeSet中所有元素都按名稱排序,必須有一個方式,我認爲。
什麼,我想實現的一個例子:
public Element search(String name) {
// if some TreeSet element's name.equals(name), return the Element
}
的一個例子是我不希望使用:
public Element search(String name) {
for (Element entry : tree) {
if (entry.getName().equals(name)) {
return entry;
}
}
return null;
}
爲什麼這是一個集而不是地圖從名字到凡是? – user2357112
@ user2357112:因爲這是一項任務,我不允許更改集合。 –
然後,分配可能要麼使用O(n)查找,要麼避免執行這些查找操作。還有可能你應該建立和維護一個輔助地圖,或者這個任務不一致,或者你誤解了某些東西。 – user2357112