java/lang/Stack
Archie Cobbs
kaffe@rufus.w3.org
Mon, 24 Aug 1998 10:31:27 -0700 (PDT)
David Young writes:
> Shouldn't thse Stack methods (and others) be atomic?
Yes, you're right... a better version is below.
-Archie
___________________________________________________________________________
Archie Cobbs * Whistle Communications, Inc. * http://www.whistle.com
package java.util;
/*
* Java core library component.
*
* Copyright (c) 1997, 1998
* Transvirtual Technologies, Inc. All rights reserved.
*
* See the file "license.terms" for information on usage and redistribution
* of this file.
*/
public class Stack
extends Vector
{
public Stack() {
}
public boolean empty() {
return isEmpty();
}
public synchronized Object peek() throws EmptyStackException {
try {
return elementAt(size() - 1);
} catch (ArrayIndexOutOfBoundsException _) {
throw new EmptyStackException();
}
}
public synchronized Object pop() throws EmptyStackException {
Object peeked = peek();
removeElementAt(size() - 1);
return peeked;
}
public Object push(Object item) {
addElement(item);
return item;
}
public synchronized int search(Object o) {
int index = lastIndexOf(o);
if (index == -1) {
return -1;
}
return size() - index;
}
}