2004-09-23 Mark Wielaard <mark@klomp.org>
* java/util/Collections.java (binarySearch(List, Object, Comparator)): Explicitly reverse direction in list iterator. (rotate): Just return when list is empty. From-SVN: r87970
This commit is contained in:
parent
fd5f23d3a6
commit
093942ac67
2 changed files with 24 additions and 3 deletions
|
@ -1,3 +1,10 @@
|
|||
2004-09-23 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* java/util/Collections.java
|
||||
(binarySearch(List, Object, Comparator)): Explicitly
|
||||
reverse direction in list iterator.
|
||||
(rotate): Just return when list is empty.
|
||||
|
||||
2004-09-23 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR java/17329:
|
||||
|
|
|
@ -574,14 +574,26 @@ public class Collections
|
|||
{
|
||||
ListIterator itr = l.listIterator();
|
||||
int i = 0;
|
||||
Object o = itr.next(); // Assumes list is not empty (see isSequential)
|
||||
boolean forward = true;
|
||||
while (low <= hi)
|
||||
{
|
||||
pos = (low + hi) >> 1;
|
||||
if (i < pos)
|
||||
for ( ; i != pos; i++, itr.next());
|
||||
{
|
||||
if (!forward)
|
||||
itr.next(); // Changing direction first.
|
||||
for ( ; i != pos; i++, o = itr.next());
|
||||
forward = true;
|
||||
}
|
||||
else
|
||||
for ( ; i != pos; i--, itr.previous());
|
||||
final int d = compare(key, itr.next(), c);
|
||||
{
|
||||
if (forward)
|
||||
itr.previous(); // Changing direction first.
|
||||
for ( ; i != pos; i--, o = itr.previous());
|
||||
forward = false;
|
||||
}
|
||||
final int d = compare(key, o, c);
|
||||
if (d == 0)
|
||||
return pos;
|
||||
else if (d < 0)
|
||||
|
@ -1110,6 +1122,8 @@ public class Collections
|
|||
public static void rotate(List list, int distance)
|
||||
{
|
||||
int size = list.size();
|
||||
if (size == 0)
|
||||
return;
|
||||
distance %= size;
|
||||
if (distance == 0)
|
||||
return;
|
||||
|
|
Loading…
Add table
Reference in a new issue