Magna Concursos
3240200 Ano: 2022
Disciplina: TI - Desenvolvimento de Sistemas
Banca: UFES
Orgão: UFES
Provas:

Considere o seguinte código Java, escrito em um arquivo chamado TestePilha.java, que traz um rascunho (código incompleto) de duas implementações para uma estrutura de dados do tipo pilha:

import java.util.ArrayList;
import java.util.List;

class PilhaA<T> extends ArrayList<T> {
public void empilhar(T elem) {
// TODO: implementar.
}
public T desempilhar() {
// TODO: implementar.
return null;
}
}

class PilhaB<T> {
private List<T> elems = new ArrayList<>();

public void empilhar(T elem) {
// TODO: implementar.
}

public T desempilhar() {
// TODO: implementar.
return null;
}
}

Considerando-se o código acima, analise as afirmativas a seguir:

I. Ambas as implementações baseiam-se na classe ArrayList, que implementa uma estrutura de dados do tipo lista e pertence à API do Java, como parte do pacote java.util.

II. Os métodos empilhar() e desempilhar() devem ser implementados de modo a, respectivamente, inserir um elemento no início da lista e remover um elemento do final da lista, como é característico da pilha.

III. A implementação PilhaA reutiliza a classe ArrayList por meio do recurso da herança, enquanto a classe PilhaB o faz por meio de composição.

IV. A implementação PilhaA é menos adequada, pois quebra o contrato da estrutura de dados pilha, ao permitir que seja inserido um elemento no meio da pilha por meio do método add().

É CORRETO o que se afirma em

 

Provas

Questão presente nas seguintes provas

Técnico de TI

40 Questões