分类: Java
2008-02-02 10:37:21
1. ArrayList和LinkedList
ArrayList使用了数组结构实现List的数据。所以ArraryList用来快速定位对象是非常有效率的。但是如果要对ArraryList中间插入或者删除,效率会非常低。
LinkedList使用链表来实现的List。所以跟ArrayList相反,LinkedList对于插入和删除是非常有优势,反之对于快速定位,是LinkedList的弱项。
1)ArrayListDemo
public class ArrayListDemo {
public static void main(String[] args) {
//用Scanner类,可以轻松获得commander的输入
Scanner scanner = new Scanner(System.in);
Listlist = new ArrayList ();
//在控制台输入,quit退出
while(true) {
System.out.print("Rokey@console# ");
String input = scanner.next();
if(input.equals("quit")) {
break;
}
list.add(input);
}
System.out.print("显示输入:");
//使用5.0的foreach功能对List进行遍历
for(String s:list) {
//5.0的类C的输出格式
System.out.printf("%s ",s);
}
}
}
输出:
Rokey@console# 一二三
Rokey@console# 三二一
Rokey@console# quit
显示输入:一二三 三二一
2)用LinkedList实现的一个字符串栈
/**
*
* @author Rokey
* 用LinkedList构建一个字符栈,先进先出
*/
public class StringStack {
private LinkedListlinkList;
public StringStack() {
linkList = new LinkedList();
}
public void push(String s) {
//将元素加入链表第一个位置
linkList.addFirst(s);
}
public String pop() {
//删除链表第一个元素,并返回
return linkList.removeFirst();
}
public String top() {
//返回链表第一个元素,但并不删除
return linkList.getFirst();
}
public boolean isEmpty() {
//检查链表是否为空
return linkList.isEmpty();
}
}
public class StringStackDemo {
public static void main(String[] args) {
//用Scanner类,可以轻松获得commander的输入
Scanner scanner = new Scanner(System.in);
StringStack stack = new StringStack();
//在控制台输入,quit退出
while (true) {
System.out.print("Rokey@console# ");
String input = scanner.next();
if (input.equals("quit")) {
break;
}
stack.push(input);
}
System.out.print("显示输入:");
//使用5.0的foreach功能对List进行遍历
while(!stack.isEmpty()) {
//5.0的类C的输出格式
System.out.printf("%s ", stack.pop());
}
}
}
输出:
Rokey@console# 一二三
Rokey@console# 三二一
Rokey@console# quit
显示输入:三二一 一二三