Использование итератора со связанным списком в Java - PullRequest
0 голосов
/ 26 августа 2011

Я создал класс связанного списка под названием «SList», который позволяет создавать пустой связанный список. Метод «insertFront» вставляет объект в начало списка и увеличивает его размер. Ниже, в основном классе, я создал объект SList и добавил две строки в список. Я хотел бы напечатать этот список. Я попытался создать объект итератора, импортированный из java.util, но компилятор выделил мне красное подчеркивание в разделе «Итератор». Почему я получаю эту ошибку? Как мне распечатать этот связанный список?

public class SList 
{
private SListNode head;
private int size; //number of items in the list

public SList() //constructor, empty list
{
    head = null;
    size = 0;
}
public void insertFront(Object item)
{
    head = new SListNode(item, head);
    size++;
}

}

import java.util.*;

public class LinkMain 
  {
        public static void main(String[] args)
    {
    String apples = "apples";
    String oranges = "oranges";

    SList x = new SList();

    x.insertFront(apples);
    x.insertFront(oranges);

    Iterator iter = x.Iterator();






}

}

1 Ответ

1 голос
/ 26 августа 2011

Я немного смущен вашим кодом.Учитывая вашу текущую реализацию, не существует метода, который возвратил бы объект Iterator из вашего SList класса.

Если вы хотите основать свою реализацию на платформе Java Collections, вы должны реализовать в своем коде интерфейс Collection следующим образом:

public class SList<E> implements Collection<E> {
    //override methods here
}

<E> - этопараметризованный тип, который делает ваш класс безопасным для типов.Если вы реализуете интерфейс Collection, вам потребуется реализовать несколько методов, среди которых есть метод, который будет возвращать Iterator<E>.

Если вы решите не использовать платформу Java Collections, это сделать так же просто, вам просто нужно будет создать все свои собственные методы.

Отличное руководство для обобщений (если вы не хотите использовать фреймворк Коллекции), вы можете найти здесь на странице Обучающие программы по Java для дженериков

Еще один замечательный учебник для фреймворка Коллекции можно найти здесь на странице Учебники Java для коллекций

Веселитесь!

...