My apologies. Thank you for the clarification.
Gili
Eelco Hillenius wrote:
That class is a replacement for java.util.Stack, which is based on
synchronized java.util.Vector. You didn't get the point of the
replacement.
Eelco
On 2/15/06, Gili <[EMAIL PROTECTED]> wrote:
Forgive me for pointing this out but ArrayList in the JDK is *not*
synchronized. As well, you can initialize its initial size just fine
using the constructor. Was there another reason for using ArrayListStack
over ArrayList which was not mentioned in the CVS commit log?
Gili
Jonathan Locke wrote:
Update of /cvsroot/wicket/wicket/src/java/wicket/util/collections
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17559/src/java/wicket/util/collections
Added Files:
ArrayListStack.java
Log Message:
Created ArrayListStack subclass of ArrayList which is more efficient and
capable of initializing with an initial capacity. Removed TODO regarding
performance in request cycle.
--- NEW FILE: ArrayListStack.java ---
/*
* $Id: ArrayListStack.java,v 1.1 2006/02/14 20:47:36 jonathanlocke Exp $
* $Revision: 1.1 $ $Date: 2006/02/14 20:47:36 $
*
*
==============================================================================
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package wicket.util.collections;
import java.util.ArrayList;
import java.util.Collection;
import java.util.EmptyStackException;
/**
* A faster, smaller stack implementation. ArrayListStack is final and
* unsynchronized (the JDK's methods are synchronized). In addition you can set
* the initial capacity if you want via the ArrayListStack(int) constructor.
*
* @author Jonathan Locke
*/
public final class ArrayListStack extends ArrayList
{
private static final long serialVersionUID = 1L;
/**
* Construct.
*
* @param initialCapacity
* Initial capacity of the stack
*/
public ArrayListStack(int initialCapacity)
{
super(initialCapacity);
}
/**
* Construct.
*/
public ArrayListStack()
{
this(10);
}
/**
* Construct.
*
* @param collection
* The collection to add
*/
public ArrayListStack(Collection collection)
{
super(collection);
}
/**
* Pushes an item onto the top of this stack.
*
* @param item
* the item to be pushed onto this stack.
*/
public void push(Object item)
{
add(item);
}
/**
* Removes the object at the top of this stack and returns that object.
*
* @return The object at the top of this stack
* @exception EmptyStackException
* If this stack is empty.
*/
public Object pop()
{
final Object top = peek();
remove(size() - 1);
return top;
}
/**
* Looks at the object at the top of this stack without removing it.
*
* @return The object at the top of this stack
* @exception EmptyStackException
* If this stack is empty.
*/
public Object peek()
{
int size = size();
if (size == 0)
{
throw new EmptyStackException();
}
return get(size - 1);
}
/**
* Tests if this stack is empty.
*
* @return <code>true</code> if and only if this stack contains no items;
* <code>false</code> otherwise.
*/
public boolean empty()
{
return size() == 0;
}
/**
* Returns the 1-based position where an object is on this stack. If the
* object <tt>o</tt> occurs as an item in this stack, this method returns
* the distance from the top of the stack of the occurrence nearest the
top
* of the stack; the topmost item on the stack is considered to be at
* distance <tt>1</tt>. The <tt>equals</tt> method is used to compare
* <tt>o</tt> to the items in this stack.
*
* @param o
* the desired object.
* @return the 1-based position from the top of the stack where the object
* is located; the return value <code>-1</code> indicates that the
* object is not on the stack.
*/
public int search(Object o)
{
int i = lastIndexOf(o);
if (i >= 0)
{
return size() - i;
}
return -1;
}
}
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Wicket-autocvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/wicket-autocvs
--
http://www.desktopbeautifier.com/
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Wicket-autocvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/wicket-autocvs
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=k&kid3432&bid#0486&dat1642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
--
http://www.desktopbeautifier.com/
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user