Die Codekopie lautet wie folgt:
Import Java.util.Arrays;
/**
*Stack -Implementierung <br>
* @Author überspringen
* @Version 1.0
*/
öffentliche Klasse Stack <t> {
Private int Größe; // die Anzahl der Elemente im Stapel
privates Objekt [] arr; // das zugrunde liegende Array
private endgültige int defaultLength = 200; // Standardlänge
/**
* Kein Parameterkonstrukt, initialisieren Sie das Array mit Standardlänge
*/
public stack () {
arr = neues Objekt [Standardlänge];
Größe = 0;
}
/**
* Initialisieren Sie das Array mit Längenparametern
* @param Länge
*/
public stack (int länge) {
arr = neues Objekt [Länge];
Größe = 0;
}
/**
* Geben Sie den Stapel ein
* @param -Elementdaten
*/
public void push (telement) {
// ist es notwendig, die Kapazität zu erweitern
if (size> = arr.length) {
// Array -Erweiterung
ExtendCapacity (Größe+1);
}
arr [Größe ++] = Element;
}
/**
* Aus dem Stapel
* @Return Daten
*/
@Suppresswarnings ("Unbekämpft")
public t pop () {
// Die Anzahl der Elemente beträgt 0, und der Stapelvorgang kann nicht durchgeführt werden
if (size == 0) {
null zurückkehren;
}
T t = (t) arr [size-1];
arr [-size] = null; // Die Daten wurden freigegeben und in Null wiederhergestellt
return t;
}
/**
* Löschen Sie den Stapel
*/
public void clear () {
für (int i = 0; i <size; i ++) {
arr [i] = null;
}
Größe = 0;
}
/**
* Holen Sie sich die Anzahl der Elemente im aktuellen Stapel
* @return Anzahl von Elementen
*/
public int getSize () {
Renditegröße;
}
/**
* Bestimmen Sie, ob es sich um einen leeren Stapel handelt
* @return leer ist wahr, nicht leer ist falsch
*/
public boolean isempty () {
Return Size == 0;
}
/**
* Alle Elemente im Druckstapel
*/
@Suppresswarnings ("Unbekämpft")
public void printstack () {
für (int i = 0; i <size; i ++) {
System.out.print ((t) arr [i]). ToString ());
}
System.out.println ();
}
/**
* Kapazität erweitern
* @Param Länge die erforderliche Länge
*/
private void extendCapacity (int länge) {
// Die Stromarraylänge und die erforderliche Länge sollten maximal sein
int mincapacity = math.max (arr.length, Länge);
// Beurteilen Sie, ob eine Kapazitätserweiterung erforderlich ist
if (mincapacity - arr.length> 0) {
// Arraylänge wird um die Hälfte erhöht
int newLength = arr.length + arr.length/2;
// Wenn die neue Länge kleiner als die Anforderung ist, verwenden Sie die erforderliche Länge als Arraylänge
if (newLength <mincapacity) {
NewLength = Mincapacity;
}
// Die Arraylänge darf Integer.max_Value nicht überschreiten
if (newLength> Integer.max_value - 8) {
NewLength = Integer.max_Value;
}
// Array -Erweiterung
arr = arrays.copyof (arr, newLength);
}
}
}