几个方法求优化
为啥呢 2012-08-14 10:01:23 为了实现SortedSet接口,实现几个方法,但效率有些不尽人意,求优化
/**
* 设定比较器
* @param comparator
*/
public void setComparator(Comparator<? super T>comparator){
this.comparator=comparator;
}
@Override
public Comparator<? super T> comparator() {
return this.comparator;
}
@Override
public T first() {
return this.getFirst();
}
@Override
public SortedSet<T> headSet(T toElement) {
SortedSet<T>result=new FastSet<T>();
for(T t:this){
if(t==null?toElement==null:t.equals(toElement))
result.add(t);
}
return result;
}
@Override
public T last() {
return this.get(this.size()-1);
}
@Override
public SortedSet<T> subSet(T fromElement, T toElement) {
SortedSet<T>result=new FastSet<T>();
if(toElement==null?fromElement==null:toElement.equals(fromElement))
return result;
for(T t:this){
if(t==null?fromElement==null:t.equals(fromElement))
result.add(t);
if(!result.isEmpty()&&t==null?toElement==null:t.equals(toElement))
break;
}
return result;
}
@Override
public SortedSet<T> tailSet(T fromElement) {
SortedSet<T>result=new FastSet<T>();
for(T t:this){
if(t==null?fromElement==null:t.equals(fromElement))
result.add(t);
}
return result;
}