Батарейка батареек в java

У меня есть несколько конечных проектов материи Структура Данных. Во всех я в порядке, но в этом специфическом средстве сколько бы обращению не удалось найти решение.

Проблема предлагает следующее:

Батарейка pilitas: Элементы ED PILITA прозондируйте любой тип информации, элементы ED БАТАРЕЙКА - типа БАТАРЕЙКА.

До сих пор, я приношу эти методы класса PILITA

  public class pilita{
    Object vectorPila[];
    int tope;
    public pilita(int tam){
        vectorPila=new Object[tam];
        tope=-1;
    }
    public void inicializarPila(){
        tope=-1;
    }
    public void push(Object dato){
        tope++;
        vectorPila[tope]=dato;
    }
    public Object pop(){
        Object fuera=vectorPila[tope];
        tope--;
        return fuera;
    }
    public boolean pilaVacia(){
        return tope==-1;
    }
    public boolean pilaLlena(){
        return vectorPila.length-1==tope;
    }
    public Object cima(){
        return vectorPila[tope];
    }
    public Object contar(){
        return tope+1;
    }
}

Но проблема коренится, в котором не, как было бы возможно осуществлять комбинацию БАТАРЕЙКИ с PILITA. Если бы они смогли помогать мне находить решение, он ему был бы благодарен за них много.

2
задан 04.06.2017, 04:18
1 ответ

Сначала, я aprovecharГ - чтобы, в использовать genГ©ricos в твоем классе Pilita для того, чтобы он вынес любой тип и было возможно подтверждать тип во времени compilaciГіn, asГ - ты предотвращаешь проблемы casteo учебник в тебе cГіdigo. Базовый пример на твоем классе:

public class Pilita<T> {
    Object vectorPila[];
    int tope;

    public void push(T dato){
        tope++;
        vectorPila[tope] = dato;
    }

    public T pop() {
        Object fuera = vectorPila[tope];
        tope--;
        return (T)fuera;
    }

    //demás métodos, constructores, etc
}

, Так как класс Pilita уже хранит батарейку, что твой класс Pila может содержать, - один Pilita из Pilita s:

public class Pila {
    private Pilita<Pilita<?>> pilaDePilas;
    int tam;

    public Pila(int tam) {
        this.tam = tam;
        pilaDePilas = new Pilita<>(tam);
    }

    //resto de métodos...
}
3
ответ дан 24.11.2019, 12:54