天天看點

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,但可記住元素插入的順序,也可以

設定成依照元素上次存取的先後來排序。

繼續閱讀