线性表、栈、队列—习题巩固
习题来自
Java语言程序设计(进阶篇)第二十章 梁勇
20.1(按字母序的升序显示单词)编写一个程序,从文本文件读取单词,并按字母的升序显示所有的单词(可以重复)。单词必须以字母开始。文本文件作为命令行参数传递。
public class Test201 {
public static void main(String[] args) {
// TODO Auto-generated method stub
java.io.File file = new java.io.File("scores.txt");
ArrayList<String> words = new ArrayList<String>();
ArrayList<String> allWords = new ArrayList<String>();
// Create a Scanner for the file
Scanner input = null;
try {
input = new Scanner(file);
// Read data from a file
while (input.hasNext()) {
// System.out.println(input.next());
String temp = input.next();
allWords.add(temp);
char t = temp.charAt(0);
if (t >= 'a' && t <= 'z' || t >= 'A' && t <= 'Z')
words.add(temp);
}
System.out.println(allWords);
System.out.println(words);
Collections.sort(words);
System.out.println(words);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
input.close();
}
}
}
20.6(在链表上使用遍历器)编写一个测试程序,在一个链表上存储500万个整数,测试分别使用iterator和使用get(index)方法的便利时间。
public class Test206 {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList<Integer> list=new LinkedList<Integer>();
int sum=0;
for(int i=0;i<5000000;i++)
list.add(5);
long begin=System.currentTimeMillis();
for(Integer temp:list)
sum=sum+temp;
System.out.println(System.currentTimeMillis()-begin);
begin=System.currentTimeMillis();
for(Iterator<Integer>it=list.iterator();it.hasNext();)
sum=sum+it.next();
System.out.println(System.currentTimeMillis()-begin);
begin=System.currentTimeMillis();
for(int i=0;i<list.size();i++)
sum=sum+list.get(i);
System.out.println(System.currentTimeMillis()-begin);
}
}