Wednesday, April 22, 2009

LinkedList

java.util.LinkedList
适合于:经常做删除和插入动作
特定方法:
addFirst()
addLast()
getFirst()
getLast()
removeFirst()
removeLast()
例:使用LinkedList实现堆栈(First-In Last-Out)
package 对象容器;
import java.util.*;
public class StringStack {

/**
* @param args
*/

private LinkedList linkedList;

public StringStack(){
linkedList=new LinkedList();
}

public void push(String name){
linkedList.addFirst(name);
}

public String top(){
return linkedList.getFirst();
}

public String pop(){
return linkedList.removeFirst();
}

public boolean isEmpty(){
return linkedList.isEmpty();
}


}


测试类:
package 对象容器;
import java.util.*;
public class StringStackDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
StringStack stack=new StringStack();

System.out.println("输入名称(输入quit结束)");

while(true){
System.out.print("#");
String input=scanner.next();
if(input.equals("quit"))break;
stack.push(input);
}
//System.out.println(stack.top());
System.out.print("显示输入:");
while(!stack.isEmpty()){
System.out.print(stack.pop()+" ");
}

System.out.println();

}

}

运行结果:
输入名称(输入quit结束)
#aaaa
#bbbbbb
#cccccccc
#quit
显示输入:cccccccc bbbbbb aaaa

例:使用LinkedList实现队列(First-In First-Out)
package 对象容器;
import java.util.*;
public class StringQueue {
private LinkedList linkedList;
public StringQueue(){
linkedList = new LinkedList();
}
public void put(String name){
linkedList.addFirst(name);
}
public String get(){
return linkedList.removeLast();
}
public boolean isEmpty(){
return linkedList.isEmpty();
}

}
测试类:
package 对象容器;
import java.util.*;
public class StringQueueDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
StringQueue queue=new StringQueue();
System.out.println("输入名称(输入quit结束)");

while(true){
System.out.print("#");
String input=scanner.next();
if(input.equals("quit"))break;
queue.put(input);
}
System.out.print("显示输入:");
while(!queue.isEmpty()){
System.out.print(queue.get()+" ");
}
System.out.println();

}

}
运行结果:
输入名称(输入quit结束)
#a
#b
#c
#quit
显示输入:a b c

另:LinkedList实现了java.util.Queue接口
package 对象容器;
import java.util.*;
public class QueueDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
Queue queue=new LinkedList();

System.out.println("输入名称(输入quit结束)");
while(true){
System.out.print("#");
String input=scanner.next();
if(input.equals("quit"))break;
//offer():加入元素至队列中
queue.offer(input);
}

System.out.print("显示输入:");
String element=null;
//poll():取得并删除队列中的元素
//队列为空时返回null
while((element=queue.poll())!=null){
System.out.print(element+" ");
}
System.out.println();

}

}








No comments:

Post a Comment