开发者

Using an iterator with a linked list in Java

开发者 https://www.devze.com 2023-03-31 10:03 出处:网络
I have created a linked-list class called \"SList\", which allows an empty linked-list to be created. The method \"insertFront\" inserts an object at the front of the list and increases the size. Belo

I have created a linked-list class called "SList", which allows an empty linked-list to be created. The method "insertFront" inserts an object at the front of the list and increases the size. Below, in the main class, I have created an SList object and added two strings to the list. I would like to print this list. I attempted to create an iterator object imported from java.util, but the compiler is giving me a red underline under "Iterator". Why am I getting this error? How should I print this linked-list?

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.*;

publi开发者_JS百科c 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();






}

}


I'm a bit confused by your code. Given your current implementation, there is no method that will return an Iterator object from your SList class.

If you would like to base your implementation off of the Java Collections framework, you should implement the Collection interface in your code as such:

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

The <E> is a parameterized type that makes your class type-safe. If you implement the Collection interface, you will be required to implement several methods, among them is a method that will return an Iterator<E>.

If you choose not to use the Java Collections framework, it is just as easy to do, you'll just need to create all of your own methods.

A great tutorial for generics (if you don't want to use the Collections framework) can be found here at the Java Tutorials page for generics

Another great tutorial for the Collections framework can also be found here at the Java Tutorials page for Collections

Have fun!

0

精彩评论

暂无评论...
验证码 换一张
取 消