Added insertSorted().

git-svn-id: https://samskivert.googlecode.com/svn/trunk@838 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
mdb
2002-09-20 21:28:08 +00:00
parent 5ab843caf1
commit 8ddea694d3
@@ -1,5 +1,5 @@
//
// $Id: SortableArrayList.java,v 1.5 2002/08/12 01:10:32 mdb Exp $
// $Id: SortableArrayList.java,v 1.6 2002/09/20 21:28:08 mdb Exp $
//
// samskivert library - useful routines for java programs
// Copyright (C) 2001 Michael Bayne
@@ -67,6 +67,42 @@ public class SortableArrayList extends AbstractList
}
}
/**
* Inserts the specified item into the list into a position that
* preserves the sorting of the list. The list must be sorted prior to
* the call to this method (an empty list built up entirely via calls
* to {@link #insertSorted} will be properly sorted). The list must be
* entirely comprised of elements that implement {@link Comparable}
* and the element being added must implement {@link Comparable} as
* well.
*
* @return the index at which the element was inserted.
*/
public int insertSorted (Object value)
{
return insertSorted(value, Comparators.COMPARABLE);
}
/**
* Inserts the specified item into the list into a position that
* preserves the sorting of the list according to the supplied {@link
* Comparator}. The list must be sorted (via the supplied comparator)
* prior to the call to this method (an empty list built up entirely
* via calls to {@link #insertSorted} will be properly sorted).
*
* @return the index at which the element was inserted.
*/
public int insertSorted (Object value, Comparator comp)
{
int ipos = binarySearch(value, comp);
if (ipos < 0) {
ipos = -(ipos+1);
}
_elements = ListUtil.insert(_elements, ipos, value);
_size++;
return ipos;
}
/**
* Performs a binary search, attempting to locate the specified
* object. The array must be sorted for this to operate correctly and