La copia del código es la siguiente:
importar java.util.arrays;
/**
*Implementación de la pila <br>
* @author omitir
* @version 1.0
*/
pila de clase pública <t> {
tamaño privado int;
objeto privado [] arr; // La matriz subyacente
Private final int defaultLength = 200; // Longitud predeterminada
/**
* Sin construcción de parámetros, inicialice la matriz con longitud predeterminada
*/
Public Stack () {
arr = nuevo objeto [defaultLength];
tamaño = 0;
}
/**
* Inicializar la matriz con parámetros de longitud
* @param longitud
*/
Public Stack (int longitud) {
arr = nuevo objeto [longitud];
tamaño = 0;
}
/**
* Ingrese la pila
* @param Data de elementos
*/
Public Void Push (Elemento T) {
// es necesario expandir la capacidad
if (size> = arr.length) {
// expansión de la matriz
Extend Capacidad (tamaño+1);
}
arr [size ++] = elemento;
}
/**
* Fuera de la pila
* @Datos de retornos
*/
@SupessWarnings ("sin control")
public t pop () {
// El número de elementos es 0, y la operación de apilamiento no se puede realizar
if (size == 0) {
regresar nulo;
}
T t = (t) arr [size-1];
arr [-size] = null; // Los datos han sido liberados y restaurados a NULL
regresar t;
}
/**
* Despeja la pila
*/
public void clear () {
para (int i = 0; i <size; i ++) {
arr [i] = null;
}
tamaño = 0;
}
/**
* Obtenga el número de elementos en la pila actual
* @return número de elementos
*/
public int getsize () {
tamaño de retorno;
}
/**
* Determinar si es una pila vacía
* @return vacío es verdadero, no vacío es falso
*/
Public boolean isEtimty () {
tamaño de retorno == 0;
}
/**
* Todos los elementos en la pila de impresiones
*/
@SupessWarnings ("sin control")
public void printStack () {
para (int i = 0; i <size; i ++) {
System.out.print ((((t) arr [i]). ToString ());
}
System.out.println ();
}
/**
* Expandir la capacidad
* @param longitud la longitud requerida
*/
Private Void ExtendCapacity (int long) {
// La longitud de la matriz actual y la longitud requerida deben ser la máxima
int mincapacity = math.max (arr.length, longitud);
// juzga si se requiere la expansión de la capacidad
if (mincapacity - arr.length> 0) {
// La longitud de la matriz se incrementa a la mitad
int newLength = arr.length + arr.length/2;
// Si la nueva longitud es menor que el requisito, use la longitud requerida como la longitud de la matriz
if (newLength <mincapacity) {
newLength = mincapacity;
}
// La longitud de la matriz no puede exceder integer.max_value
if (newLength> integer.max_value - 8) {
newLength = integer.max_value;
}
// expansión de la matriz
arr = arrays.copyOf (arr, newLength);
}
}
}