我有一個有序的,唯一的一組對象。我目前使用TreeSet來獲得正確的排序。但是,集合不具備獲取索引的能力。是否有一個Java集合的對象是唯一的(如集合中),但能夠獲取某個對象的索引/位置(如列表中所示)?
我目前的實施很好,但不一定直觀。
TreeSet<T> treeSet = new TreeSet<T>(Comparable c);
// Omitted: Add items to treeSet //
int index = new ArrayList<T>(treeSet)().indexOf(object);
有沒有更簡單的方法來做到這一點?
這確實有效。不幸的是,它並不比手動迭代樹更快--Java並沒有緩存子樹的大小,所以它的O(n)代替了O(log n),因爲它可能是。 –