代碼
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
倒退噜/黃可令
運作結果
第一次直接輸出
第二次按排序輸出
Collection的sort()方法
Collections類僅包含使用Collection結構的類的簡單靜态方法。sort方法隻有一個輸入參數,這是把list對象按照自然順序排列(數字按1,2,3…字母按字典順序等)
其他
ArrayList不是唯一的集合
雖然ArrayList會是最常用的,但偶爾還是會有特殊情況。
下面列出幾個較為重要的
★TreeSet
以有序狀态保持并可防止重複
★HashMap
可用成對的name/value來儲存與取出
★LinkedList
針對經常插入或删除中間元素所設計的高效率集合
(實際上ArrayList還是比較實用)
★HashSet
防止重複的集合,可快速地找尋相符的元素
★LinkedHashMap
類似HashMap,但可記住元素插入的順序,也可以
設定成依照元素上次存取的先後來排序。