九华山还愿要带点什么:谁帮忙看看以下代码的ListItem类是怎么来的?

来源:百度文库 编辑:高考问答 时间:2024/05/13 06:43:06
public class LinkedList {
// Default constructor - creates an empty list
public LinkedList() {} //默认构造函数

// Constructor to create a list containing one object
public LinkedList(Object item) { //新的构造函数
if(item != null) {
current=end=start=new ListItem(item); // item is the start and end
}
}

// Construct a linked list from an array of objects
public LinkedList(Object[] items) { //新的构造函数
if(items != null) {
// Add the items to the list
for(int i = 0; i < items.length; i++) {
addItem(items[i]);
}
current = start;
}
}

// Add an item object to the list
public void addItem(Object item) {
ListItem newEnd = new ListItem(item); // Create a new ListItemList:Item类是从哪里来的?????
if(start == null) { // Is the list empty?
start = end = newEnd; // Yes, so new element is start and end
} else { // No, so append new element
end.next = newEnd; // Set next variable for old end
end = newEnd; // Store new item as end
}
}

// Get the first object in the list
public Object getFirst() {
current = start;
return start == null ? null : start.item;
}

// Get the next object in the list
public Object getNext() {
if(current != null) {
current = current.next; // Get the reference to the next item
}
return current == null ? null : current.item;
}

private ListItem start = null; // First ListItem in the list
private ListItem end = null; // Last ListItem in the list
private ListItem current = null; // The current item for iterating
private class ListItem {
// Constructor
public ListItem(Object item) {
this.item = item; // Store the item
next = null; // Set next as end point
}

// Return class name & object
public String toString() {
return "ListItem " + item ;
}

ListItem next; // Refers to next item in the list
Object item; // The item for this ListItem
//类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象
//(包括数组)都实现这个类的方法。
}
}