Ajuda - Interface List implementação feita pelo LinkedList - Como usar os métodos de LinkedList?

8 respostas
A

public void listaCarros(){ List<String> listaCarros = new LinkedList<String>(); listaCarros.add("Astra"); listaCarros.add("Gol"); listaCarros.add("Fusca"); listaCarros.add("Audi"); listaCarros.add("Stilo"); System.out.println(listaCarros.getFirst()); }

pq não compila? queria testar os métodos de LinkedList…

tou chamando o método acima a partir do método Main, vejam:

public static void main(String[] args){ new PraticandoCollectionsFramework().listaCarros(); }

8 Respostas

E

Modo 1.

LinkedList<String>  listaCarros = new LinkedList<String>();   
             listaCarros.add("Astra");  
                 System.out.println(listaCarros.getFirst());

Modo 2.

List<String>  listaCarros = new LinkedList<String>();   
             listaCarros.add("Astra");  
                 System.out.println(((LinkedList<String>listaCarros).getFirst());

Note que a variável no seu programa é do tipo List, não LinkedList, então o método getFirst não pode ser diretamente chamado, embora você veja claramente que o objeto contido em listaCarros é do tipo LinkedList.

A

Muitíssimo obrigado Fera…

abraço,
AS

maior_abandonado

po…não adianta nada você saber o código que faz funcionar mas não saber o que ele está fazendo (muito menos como)…

LinkedList implementa a interface List, isso garante que todos os métodos que estiverem na interface List, existem na classe LinkedList, mas isso não garante o contrario, nem todos os métodos de LinkedList constam na interface também… você estava usando um método que que não está na interface.

pense bem, olhe como você instanciou o objeto

isso quer dizer que você criou uma variavel do tipo List na memória e jogou nessa variável da memória um LinkedList (isso é valido por que o LinkedList “é um” List), portanto o tipo do objeto que foi alocado é um List, sendo assim só irá compilar usando os métodos de List.

te aconselho a dar uma estudada mais a fundo em herança, para intender melhor esse conceito…

A
List<String> listaCarros = new LinkedList<String>();     
			listaCarros.add("Astra"); 
			listaCarros.add("Gol");
			listaCarros.add("Fusca");
			listaCarros.add("Audi");
			listaCarros.add("Stilo");
				System.out.println(((LinkedList<String>listaCarros).getFirst());  

		}

puxa está dando erro de compilação neste exemplo...

valeu pela explicação maior_abandonado...

abraço...

ViniGodoy

Métodos como getFirst() e getLast() apenas são usados nas raras vezes que você precisar exclusivamente de uma LinkedList.
Mesmo nesse caso, talvez vc esteja querendo usar através da interface Deque ou Queue.

A

Legal Vini… Mas e quanto a sintaxe, 2º forma de fazer… Pois tá dando compile error…

ViniGodoy

É assim:

System.out.println(((LinkedList<String>)listaCarros).getFirst());
A

Valeu Vini…

Criado 28 de junho de 2010
Ultima resposta 28 de jun. de 2010
Respostas 8
Participantes 4