2 * Copyright (c) 2000-2005 by JetBrains s.r.o. All Rights Reserved.
3 * Use is subject to license terms.
5 package com
.intellij
.util
.containers
;
12 public class SortedList
<T
> extends AbstractList
<T
>{
13 private final Comparator
<T
> myComparator
;
14 private boolean mySorted
;
15 private final List
<T
> myDelegate
= new ArrayList
<T
>();
17 public SortedList(final Comparator
<T
> comparator
) {
18 myComparator
= comparator
;
22 public void add(final int index
, final T element
) {
24 myDelegate
.add(index
, element
);
28 public T
remove(final int index
) {
29 return myDelegate
.remove(index
);
33 public boolean remove(Object o
) {
35 final int i
= Collections
.binarySearch(myDelegate
, (T
)o
, myComparator
);
43 public T
get(final int index
) {
45 return myDelegate
.get(index
);
48 private void ensureSorted() {
55 protected void sort(List
<T
> delegate
) {
56 Collections
.sort(myDelegate
, myComparator
);
65 public Iterator
<T
> iterator() {
67 return super.iterator();
71 public ListIterator
<T
> listIterator() {
73 return super.listIterator();
77 return myDelegate
.size();