SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
UNIVERSIDADE FEDERAL DE SÃO PAULO
CAMPUS SÃO JOSÉ DOS CAMPOS
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA (DCT)
PROGRAMAÇÃO ORIENTADA A OBJETOS I
Lista de Exercícios – Vetores, Coleções, Estruturas de Dados
1. Escreva um programa que lê uma sequência de números positivos dada pelo usuário e imprima
os mesmos números ordenados ascendentemente. O usuário entrará com 0 para marcar o fim da
entrada. Assuma que no máximo 100 números serão lidos.
2. Escreva um programa que, dado um vetor de doubles, retorna a média dos números no vetor.
3. Suponha uma classe Funcionário definida como segue (métodos get e set omitidos):
public class Funcionario {
private String sobreNome;
private String nome;
private double salarioHora;
private int anosNaEmpresa;
}
Escreva um método nesta classe que, dado um vetor de funcionários e um número X de anos (os
parâmetros do método), imprima o nome, sobrenome e salário de cada funcionário no vetor que
esteve na empresa por X anos ou mais.
4. Escreva um método que encontra o maior inteiro de um vetor de inteiros.
5. Qual é a saída do seguinte trecho de código?
char[][] pic = new char[6][6];
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++) {
if ( i == j || i == 0 || i == 5 )
pic[i][j] = ’*’;
else
pic[i][j] = ’.’;
}
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++)
System.out.println(pic[i][j]);
System.out.println();
}
6. Suponha que uma lista ligada de inteiros é criada a partir de objetos da seguinte classe:
public class No {
private int dado; / / Um item da l i s t a
private No prox; / / Ponteiro para o próximo
}
1
Crie os métodos para inserir, remover e buscar um nó na lista. Escreva um método que cria uma
cópia de uma lista com a ordem invertida dos itens da lista. O método deve receber uma lista (No)
e retornar uma lista (No). A lista original não deve ser modificada. Escreva também um método
que retorna a soma dos inteiros de uma lista.
Crie um método main() para testar as funcionalidades da classe.
7. Considere o seguinte método:
static void imprimeAlgo(int nível) {
if (nivel == 0) {
System.out.print("*");
} else {
System.out.print("[");
imprimeAlgo(nivel - 1);
System.out.print(",");
imprimeAlgo(nivel - 1);
System.out.println("]");
}
}
Mostre as saídas que seriam produzidas pelas chamadas imprimeAlgo(0), imprimeAlgo(1),
imprimeAlgo(2), e imprimeAlgo(3).
8. Suponha que uma árvore binária pode ser criada a partir de objetos da seguinte classe:
class NoDeArvore {
int item; / / Um item na árvore .
NoDeArvore esquerda; / / Pont . sub−árvore esquerda .
NoDeArvore direita; / / Pont . sub−árvore d i r e i t a .
}
Escreva métodos para inserir, remover e buscar um elemento na árvore. Crie também um método
recursivo que encontra a soma dos itens de uma árvore. Seu método deve ter um parâmetro do tipo
NoDeArvore e deve retornar um inteiro.
9. Crie uma classe Pilha com os métodos pop, push e top (retorna o topo da Pilha) a partir de
uma LinkedList (ou seja, sua classe deve ter um atributo do tipo LinkedList que armaze-
nará o conteúdo da pilha). Observação: não utilize os métodos pop e push já oferecidos por
LinkedList; a pilha deve funcionar com objetos de qualquer tipo.
10. Crie uma classe Fila com os métodos enfileira, desenfileira e vazio (verifica se a fila está vazia) a
partir de uma LinkedList. A fila deve funcionar com objetos de qualquer tipo.
11. Crie uma classe que gera um vetor de doubles aleatórios. O construtor da classe deve receber
um inteiro que corresponde ao tamanho do vetor.
12. Dadas as seguintes classes Cat e Dog, corrija o programa para que não ocorra o ClassCastException.
public class Cat {
private int catNumber;
public Cat(int i) { catNumber = i; }
public void id() {
System.out.println("Cat #" + catNumber);
}
}
2
public class Dog {
private int dogNumber;
public Dog(int i) { dogNumber = i; }
public void id() {
System.out.println("Dog #" + dogNumber);
}
}
public class CatsAndDogs {
public static void main(String[] args) {
List cats = new ArrayList();
for(int i = 0; i < 7; i++)
cats.add(new Cat(i));
cats.add(new Dog(7));
for(int i = 0; i < cats.size(); i++)
((Cat)cats.get(i)).id();
}
}
13. Escreva uma classe ContadorDePalavras baseada na classe ListaDePalavras abaixo que, além de
armazenar palavras, armazene também quantas vezes uma palavra foi armazenada. Escreva méto-
dos para essa classe que recuperem o número de vezes que uma palavra foi armazenada ou zero se
ela não tiver sido armazenada.
import java.util.*;
public class ListaDePalavras {
private Set lista;
public ListaDePalavras() {
lista = new TreeSet();
}
public void adiciona(String palavras) {
StringTokenizer st = new StringTokenizer(palavras);
while(st.hasMoreTokens())
lista.add(st.nextToken());
}
public boolean existe(String palavra) {
return lista.contains(palavra);
}
}
3

Mais conteúdo relacionado

Mais procurados

Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
Rafael_Lima87
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
Emerson Cardoso
 
Exercício de estrutura de dados 01
Exercício de estrutura de dados 01Exercício de estrutura de dados 01
Exercício de estrutura de dados 01
Patricia Diniz
 

Mais procurados (20)

Practica 7
Practica 7Practica 7
Practica 7
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHP
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Teclas de atalho do eclipse
Teclas de atalho do eclipseTeclas de atalho do eclipse
Teclas de atalho do eclipse
 
Practica 7
Practica 7Practica 7
Practica 7
 
Java Básico - Resolução
Java Básico - ResoluçãoJava Básico - Resolução
Java Básico - Resolução
 
Listas em C
Listas em CListas em C
Listas em C
 
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
 
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Practica 7
Practica 7Practica 7
Practica 7
 
Comandos mysql
Comandos mysqlComandos mysql
Comandos mysql
 
Exercício de estrutura de dados 01
Exercício de estrutura de dados 01Exercício de estrutura de dados 01
Exercício de estrutura de dados 01
 
Array list
Array listArray list
Array list
 

Destaque (12)

Projeto ULA
Projeto ULAProjeto ULA
Projeto ULA
 
Aprendendo a mexer no quartus II
Aprendendo a mexer no quartus IIAprendendo a mexer no quartus II
Aprendendo a mexer no quartus II
 
Trabalho Final de Compiladores
Trabalho Final de CompiladoresTrabalho Final de Compiladores
Trabalho Final de Compiladores
 
Circuitos aritmeticos
Circuitos aritmeticosCircuitos aritmeticos
Circuitos aritmeticos
 
Pcd
PcdPcd
Pcd
 
Tutorial poke-tool
Tutorial poke-toolTutorial poke-tool
Tutorial poke-tool
 
Apostila - Circuitos Digitais
Apostila - Circuitos DigitaisApostila - Circuitos Digitais
Apostila - Circuitos Digitais
 
Trabalho 5 - Aĺgebra Linear
Trabalho 5 - Aĺgebra LinearTrabalho 5 - Aĺgebra Linear
Trabalho 5 - Aĺgebra Linear
 
Projeto ula
Projeto ula Projeto ula
Projeto ula
 
Algebra linear teoremas
Algebra linear teoremasAlgebra linear teoremas
Algebra linear teoremas
 
Pratical mpi programming
Pratical mpi programmingPratical mpi programming
Pratical mpi programming
 
Lexyacc
LexyaccLexyacc
Lexyacc
 

Semelhante a Lista IV de Programação Orientada a Objetos

Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
jose-junior89
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
Maurício Linhares
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8
PeslPinguim
 

Semelhante a Lista IV de Programação Orientada a Objetos (20)

Java8
Java8Java8
Java8
 
Java5
Java5Java5
Java5
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Aula 7
Aula 7 Aula 7
Aula 7
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Series lab
Series labSeries lab
Series lab
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Aula5
Aula5Aula5
Aula5
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Repetições e vetores
Repetições e vetoresRepetições e vetores
Repetições e vetores
 
Aulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton YagamiAulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton Yagami
 
Como criar classes e objetos
Como criar classes e objetosComo criar classes e objetos
Como criar classes e objetos
 
Como criar classes e objetos
Como criar classes e objetosComo criar classes e objetos
Como criar classes e objetos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
 
Java 06
Java 06Java 06
Java 06
 

Último

2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
rosenilrucks
 

Último (20)

Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
praticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médiopraticas experimentais 1 ano ensino médio
praticas experimentais 1 ano ensino médio
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 

Lista IV de Programação Orientada a Objetos

  • 1. UNIVERSIDADE FEDERAL DE SÃO PAULO CAMPUS SÃO JOSÉ DOS CAMPOS DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA (DCT) PROGRAMAÇÃO ORIENTADA A OBJETOS I Lista de Exercícios – Vetores, Coleções, Estruturas de Dados 1. Escreva um programa que lê uma sequência de números positivos dada pelo usuário e imprima os mesmos números ordenados ascendentemente. O usuário entrará com 0 para marcar o fim da entrada. Assuma que no máximo 100 números serão lidos. 2. Escreva um programa que, dado um vetor de doubles, retorna a média dos números no vetor. 3. Suponha uma classe Funcionário definida como segue (métodos get e set omitidos): public class Funcionario { private String sobreNome; private String nome; private double salarioHora; private int anosNaEmpresa; } Escreva um método nesta classe que, dado um vetor de funcionários e um número X de anos (os parâmetros do método), imprima o nome, sobrenome e salário de cada funcionário no vetor que esteve na empresa por X anos ou mais. 4. Escreva um método que encontra o maior inteiro de um vetor de inteiros. 5. Qual é a saída do seguinte trecho de código? char[][] pic = new char[6][6]; for (int i = 0; i < 6; i++) for (int j = 0; j < 6; j++) { if ( i == j || i == 0 || i == 5 ) pic[i][j] = ’*’; else pic[i][j] = ’.’; } for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) System.out.println(pic[i][j]); System.out.println(); } 6. Suponha que uma lista ligada de inteiros é criada a partir de objetos da seguinte classe: public class No { private int dado; / / Um item da l i s t a private No prox; / / Ponteiro para o próximo } 1
  • 2. Crie os métodos para inserir, remover e buscar um nó na lista. Escreva um método que cria uma cópia de uma lista com a ordem invertida dos itens da lista. O método deve receber uma lista (No) e retornar uma lista (No). A lista original não deve ser modificada. Escreva também um método que retorna a soma dos inteiros de uma lista. Crie um método main() para testar as funcionalidades da classe. 7. Considere o seguinte método: static void imprimeAlgo(int nível) { if (nivel == 0) { System.out.print("*"); } else { System.out.print("["); imprimeAlgo(nivel - 1); System.out.print(","); imprimeAlgo(nivel - 1); System.out.println("]"); } } Mostre as saídas que seriam produzidas pelas chamadas imprimeAlgo(0), imprimeAlgo(1), imprimeAlgo(2), e imprimeAlgo(3). 8. Suponha que uma árvore binária pode ser criada a partir de objetos da seguinte classe: class NoDeArvore { int item; / / Um item na árvore . NoDeArvore esquerda; / / Pont . sub−árvore esquerda . NoDeArvore direita; / / Pont . sub−árvore d i r e i t a . } Escreva métodos para inserir, remover e buscar um elemento na árvore. Crie também um método recursivo que encontra a soma dos itens de uma árvore. Seu método deve ter um parâmetro do tipo NoDeArvore e deve retornar um inteiro. 9. Crie uma classe Pilha com os métodos pop, push e top (retorna o topo da Pilha) a partir de uma LinkedList (ou seja, sua classe deve ter um atributo do tipo LinkedList que armaze- nará o conteúdo da pilha). Observação: não utilize os métodos pop e push já oferecidos por LinkedList; a pilha deve funcionar com objetos de qualquer tipo. 10. Crie uma classe Fila com os métodos enfileira, desenfileira e vazio (verifica se a fila está vazia) a partir de uma LinkedList. A fila deve funcionar com objetos de qualquer tipo. 11. Crie uma classe que gera um vetor de doubles aleatórios. O construtor da classe deve receber um inteiro que corresponde ao tamanho do vetor. 12. Dadas as seguintes classes Cat e Dog, corrija o programa para que não ocorra o ClassCastException. public class Cat { private int catNumber; public Cat(int i) { catNumber = i; } public void id() { System.out.println("Cat #" + catNumber); } } 2
  • 3. public class Dog { private int dogNumber; public Dog(int i) { dogNumber = i; } public void id() { System.out.println("Dog #" + dogNumber); } } public class CatsAndDogs { public static void main(String[] args) { List cats = new ArrayList(); for(int i = 0; i < 7; i++) cats.add(new Cat(i)); cats.add(new Dog(7)); for(int i = 0; i < cats.size(); i++) ((Cat)cats.get(i)).id(); } } 13. Escreva uma classe ContadorDePalavras baseada na classe ListaDePalavras abaixo que, além de armazenar palavras, armazene também quantas vezes uma palavra foi armazenada. Escreva méto- dos para essa classe que recuperem o número de vezes que uma palavra foi armazenada ou zero se ela não tiver sido armazenada. import java.util.*; public class ListaDePalavras { private Set lista; public ListaDePalavras() { lista = new TreeSet(); } public void adiciona(String palavras) { StringTokenizer st = new StringTokenizer(palavras); while(st.hasMoreTokens()) lista.add(st.nextToken()); } public boolean existe(String palavra) { return lista.contains(palavra); } } 3