Wie implementiere ich die Methode toString() für eine ArrayStack?

Möchte ich anzeigen, um eine Liste der Aufträge des Typs ArrayQueue <Order>
Die Klasse Order hat eine ArrayStack<String> als eines seiner Attribute. Ich überschrieb die toString() Methode in der Klasse Order, aber wie kann ich ihn außer Kraft setzen in der ArrayStack Klasse? Denn das ist die Ausgabe die ich bekomme, wenn ich display:

OrderNumber Name Datum ArrayStack@481adc30

Was würde ich tun, um die Anzeige des Strings in ArrayStack richtig? Kann ich änderungen an der Klasse ArrayStack oder etwas ändern in meinem Display-Methode?

Dies ist mein Display-Methode:

 public void display(){
    if (!isEmpty())
    for (int i = 0; i < numberOfEntries; i++) {
        System.out.println(queue[(frontIndex + i) % queue.length]);
    }
    else System.out.println("You don't have any orders");
    }

ArrayStack Klasse:

 public class ArrayStack < T > implements StackInterface < T >
{
    private T [] stack; //array of stack entries

    private int topIndex; //index of top entry

    private static final int DEFAULT_INITIAL_CAPACITY = 50;

    public ArrayStack ()
    {
        this (DEFAULT_INITIAL_CAPACITY);
    } //end default constructor


    public ArrayStack (int initialCapacity)
    {
        //the cast is safe because the new array contains null entries
        @ SuppressWarnings ("unchecked")
            T [] tempStack = (T []) new Object [initialCapacity];
        stack = tempStack;
        topIndex = -1;
    } //end constructor

    /*  Implementations of the stack operations */

Order-Klasse:

   import java.util.Date;


public class Order {

    int orderNumber;
    String customerName;
    Date date;
    StackInterface <String> items;

Order( int number, String name, Date datum, StackInterface<String> item){
    orderNumber = number;
    customerName= name;
    date= datum;
    items = item;   
}

/Overriding toString() to Display a list of Orders as one String line. 
public String toString(){
    return orderNumber + " " + customerName + " " + date + " " + items;
}
  • Können Sie uns zeigen Ihre toString() Methode der Order Klasse.
  • public String toString(){ return orderNumber + " " + customerName + " " + date + " " + items; }
  • Warteschlange ist das Objekt vom Typ ArrayQueue <Order>?
  • Warteschlange ist das Array in der QueueArray() Klasse einen generischen Typ.
  • Also die Werte von orderNumber, customerName, date sind korrekt gedruckt. Nur hast du ein problem mit items?
  • Ja! Sie sind korrekt gedruckt, weil ich habe eine Methode toString() in der Klasse Order zeigt, dass die Array-Elemente als Strings. Aber was ist, wenn eines der Array-Elemente ist selbst ein Array? in meinem Fall die items. Ich müsste irgendwie hinzufügen toString() Methode, um das auch? aber wo sollte ich es hinzufügen?
  • Können Sie mir sagen, ArrayStack ist gebündelt in dem Paket?
  • Implementiert habe ich es selbst. Ich will hinzufügen, die ArrayStack und Bestellungen Klassen auf meine Frage
  • Sie müssen hinzufügen, toString zu ArrayStack < T > so wird es genannt, wenn in public String toString(){ return orderNumber + " " + customerName + " " + date + " " + items; }
  • Ich habe toString-Methode in ArrayStack in meiner Antwort.

InformationsquelleAutor helloworld | 2015-04-17
Schreibe einen Kommentar