java打印列表元素,print()函数,用于打印列表中每个元素的内容

Basically i'm trying to write a print statement that will allow me to print the elements per line as a println as the output when i run the driver.java. And for the life of me i cannot figure out how to do it. Any help will be appreciated.

here is the driver.java

public class Driver {

public static void main(String args[]){

LList s_list = new LList();

s_list.insert("New York, 8.4M");

s_list.insert("Los Angeles 3.8M");

s_list.insert("Chicago, 2.7M");

s_list.insert("Houston, 2.1M");

s_list.insert("Philadelphia, 1.55M");

s_list.insert("Phoenix, 1.51M");

s_list.append("San Antonio, 1.4M");

s_list.append("San Diego, 1.35M");

s_list.append("Dallas, 1.25M");

s_list.append("San Jose, 0.998M");

s_list.append("Austin, 0.88M");

s_list.append("Indianapolis, 0.84M");

s_list.append("Jacksonville, 0.84M");

s_list.append("San Francisco, 0.83M");

s_list.append("Columbus, 0.82M");

s_list.append("Charlotte, 0.79M");

s_list.print();

s_list.moveToPos(3);

s_list.remove();

s_list.print();

s_list.moveToEnd();

s_list.remove();

s_list.print();

s_list.moveToStart();

s_list.remove();

s_list.remove();

s_list.print();

s_list.clear();

s_list.print();

}

}

and I have a java file named LList.java

where I am trying to write a print method where it will print() function that prints the contents of each element of your list; print one element per line.

public void print {

}

So, How will i print the elements in "s_list" line per line as output.

Any help is appreciated.

UPDATE: I am going to post Llist.java,list.java & link.java here

Llist.java

/** Linked list implementation */

class LList implements List {

private Link head; // Pointer to list header

private Link tail; // Pointer to last element

protected Link curr; // Access to current element

private int cnt; // Size of list

/** Constructors */

LList(int size) { this(); } // Constructor -- Ignore size

LList() {

curr = tail = head = new Link(null); // Create header

cnt = 0;

}

/** Remove all elements */

public void clear() {

head.setNext(null); // Drop access to links

curr = tail = head = new Link(null); // Create header

cnt = 0;

}

/** Insert "it" at current position */

public void insert(E it) {

curr.setNext(new Link(it, curr.next()));

if (tail == curr) tail = curr.next(); // New tail

cnt++;

}

/** Append "it" to list */

public void append(E it) {

tail = tail.setNext(new Link(it, null));

cnt++;

}

/** Remove and return current element */

public E remove() {

if (curr.next() == null) return null; // Nothing to remove

E it = curr.next().element(); // Remember value

if (tail == curr.next()) tail = curr; // Removed last

curr.setNext(curr.next().next()); // Remove from list

cnt--; // Decrement count

return it; // Return value

}

/** Set curr at list start */

public void moveToStart()

{ curr = head; }

/** Set curr at list end */

public void moveToEnd()

{ curr = tail; }

/** Move curr one step left; no change if now at front */

public void prev() {

if (curr == head) return; // No previous element

Link temp = head;

// March down list until we find the previous element

while (temp.next() != curr) temp = temp.next();

curr = temp;

}

/** Move curr one step right; no change if now at end */

public void next()

{ if (curr != tail) curr = curr.next(); }

/** @return List length */

public int length() { return cnt; }

/** @return The position of the current element */

public int currPos() {

Link temp = head;

int i;

for (i=0; curr != temp; i++)

temp = temp.next();

return i;

}

/** Move down list to "pos" position */

public void moveToPos(int pos) {

assert (pos>=0) && (pos<=cnt) : "Position out of range";

curr = head;

for(int i=0; i

}

/** @return Current element value */

public E getValue() {

if(curr.next() == null) return null;

return curr.next().element();

}

public void print()

{

}

}

List.java

/** List ADT */

public interface List {

/** Remove all contents from the list, so it is once again

empty. Client is responsible for reclaiming storage

used by the list elements. */

public void clear();

/** Insert an element at the current location. The client

must ensure that the list�s capacity is not exceeded.

@param item The element to be inserted. */

public void insert(E item);

/** Append an element at the end of the list. The client

must ensure that the list�s capacity is not exceeded.

@param item The element to be appended. */

public void append(E item);

/** Remove and return the current element.

@return The element that was removed. */

public E remove();

/** Set the current position to the start of the list */

public void moveToStart();

/** Set the current position to the end of the list */

public void moveToEnd();

/** Move the current position one step left. No change

if already at beginning. */

public void prev();

/** Move the current position one step right. No change

if already at end. */

public void next();

/** @return The number of elements in the list. */

public int length();

/** @return The position of the current element. */

public int currPos();

/** Set current position.

@param pos The position to make current. */

public void moveToPos(int pos);

/** @return The current element. */

public E getValue();

}

Link.java

/** Singly linked list node */

class Link {

private E element; // Value for this node

private Link next; // Pointer to next node in list

// Constructors

Link(E it, Link nextval)

{ element = it; next = nextval; }

Link(Link nextval) { next = nextval; }

Link next() { return next; } // Return next field

Link setNext(Link nextval) // Set next field

{ return next = nextval; } // Return element field

E element() { return element; } // Set element field

E setElement(E it) { return element = it; }

}

解决方案

We will need to see inside the class of LList.java... but for now i am going to assume LList extends List [or ArrayList, etc..]

public void print

{

for(int i = 0; i < this.size(); i++) //this really depends on how you store your list

System.out.println(this.get(i));

}

This all depends on how your LList.java looks though... [this.size()] refers to the List or ArrayList class [if you extended it...].

If you are not extending List or something along those lines, you could always do:

public void print

{

for(int i = 0; i < storingArray.size(); /*or .length*/ i++)

System.out.println(storingArray.get(i)); /*or storingArray[i]*/

}

But as always, you could take the easy way and just do:

list.foreach(System.out::println); //must have Java 8.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值