LinkedList mise en œuvre en Java avec les génériques et amélioré pour

J'ai besoin de vous pour mon examen de la mise en œuvre d'une seule Liste Liée (SLL) s'il vous plaît. La mise en œuvre devrait utiliser des génériques et être en mesure d'utiliser l'interface pour.

Le problème est que, quand je ne for (Number n : list) être list un MyLinkedList<Integer> ou MyLinkedList<Double>, j'obtiens le message d'erreur "incompatibilité de Type: impossible de convertir de type d'élément Objet de Nombre".

C'est ce que j'ai. Les pièces que je ne suis pas très sûre de ce sont les génériques et les itérateurs.

Merci d'avance.

import java.util.Iterator;
public class MyLinkedList<T> implements Iterable<Object>
{
private Node head;
public MyLinkedList ()
{
head = null;
}
public void add (Node n)
{
if (head == null)
{
head = n;
}
else
{
Node node = head;
while (node.next != null) 
{
node = node.next;
}
node = n;
}
}
public Iterator iterator() 
{
return new MyLinkedListIterator (head);
}
public int size () 
{
int ret = 0;
MyLinkedListIterator it = new MyLinkedListIterator (head);
while (it.hasNext ())
{
it.next();
ret++;
}
return ret;
}
public Node getHead ()
{
return head;
}
}
class MyLinkedListIterator<T> implements Iterator
{
private Node node;
public MyLinkedListIterator (Node h)
{
node = h;
}
public MyLinkedListIterator (MyLinkedList<T> l)
{
this(l.getHead ());
}
public boolean hasNext () 
{
if (node.next == null)
{
return false;
}
else
{
return true;
}
}
public Object next () 
{
return node.next;
}
public void remove () 
{
}   
}
Pourquoi ne pas simplement utiliser le construit en java.util.LinkedList? La seule raison qui vient à l'esprit est de savoir si cela est un devoir à la maison, ou que vous tentez d'accéder à une compréhension de la façon dont les listes chaînées et les génériques de travail. (Si c'est les devoirs, vous devriez tag avec des 'devoirs')

OriginalL'auteur nunos | 2010-09-26