667 |
|
} |
668 |
|
|
669 |
|
public int indexOf(Object o) { |
670 |
< |
final SequenceLock lock = this.lock; |
671 |
< |
for (;;) { |
672 |
< |
long seq = lock.awaitAvailability(); |
673 |
< |
Object[] items = array; |
674 |
< |
int n = count; |
675 |
< |
if (n <= items.length) { |
676 |
< |
for (int i = 0; i < n; ++i) { |
677 |
< |
Object e = items[i]; |
678 |
< |
if (lock.getSequence() != seq) { |
679 |
< |
lock.lock(); |
680 |
< |
try { |
681 |
< |
return rawIndexOf(o, 0, count); |
682 |
< |
} finally { |
683 |
< |
lock.unlock(); |
684 |
< |
} |
685 |
< |
} |
686 |
< |
else if ((o == null) ? e == null : o.equals(e)) |
687 |
< |
return i; |
688 |
< |
} |
689 |
< |
return -1; |
690 |
< |
} |
691 |
< |
} |
670 |
> |
return indexOf(o, 0); |
671 |
|
} |
672 |
|
|
673 |
|
public boolean isEmpty() { |