天天看点

HeadFirst Java 学习笔记 数据结构2

代码

package 数据结构;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;

public class Jukebox2 {
ArrayList<String> songList = new ArrayList<String>();
public static void main(String[] args) {
	new Jukebox2().go();

}
public void go() {
	getSongs();
	System.out.println(songList);
	Collections.sort(songList);//调用Collection静态的sort()方法,然后在列出清单
	System.out.println(songList);//第二次的输出并按照字母排序
}
private void getSongs() {
	// TODO Auto-generated method stub
try {
	File file=new File("SongList.txt");
	BufferedReader reader = new BufferedReader (new FileReader(file));
String line =null;
while ((line = reader.readLine()) !=null) {
	addSong(line);
}
}	catch(Exception ex) {
	ex.printStackTrace();
}
}
private void addSong(String lineToParse) {
	// TODO Auto-generated method stub
	String[] tokens = lineToParse.split("/");
	songList.add(tokens[0]);
}
}


           

SongList.txt

Communication/The Cardigans

Black Dog/Led Zeppelin

Dreams/Van Halen

Comfortably Numb/Pink Floyd

Beth/Kiss

倒退噜/黄可令

运行结果

第一次直接输出

第二次按排序输出

HeadFirst Java 学习笔记 数据结构2

Collection的sort()方法

Collections类仅包含使用Collection结构的类的简单静态方法。sort方法只有一个输入参数,这是把list对象按照自然顺序排列(数字按1,2,3…字母按字典顺序等)

其他

ArrayList不是唯一的集合

虽然ArrayList会是最常用的,但偶尔还是会有特殊情况。

下面列出几个较为重要的

★TreeSet

以有序状态保持并可防止重复

★HashMap

可用成对的name/value来保存与取出

★LinkedList

针对经常插入或删除中间元素所设计的高效率集合

(实际上ArrayList还是比较实用)

★HashSet

防止重复的集合,可快速地找寻相符的元素

★LinkedHashMap

类似HashMap,但可记住元素插入的顺序,也可以

设定成依照元素上次存取的先后来排序。

继续阅读