1. 程式人生 > >Java基礎系列(三)

Java基礎系列(三)

Iterator和Iterable

Iterator: 為了是客戶端用同一種邏輯來遍歷集合,而不用考慮具體是那種集合
對於任意的集合c遍歷其內部的元素都是相同的:

for(Iterator it = c.iterator(); it.hasNext(); ) { Object o = it.next(); // 對o的操作... } 

在JDK1.5中,還對上面的程式碼在語法上作了簡化
這就是我們熟知的for-each

for(Object o : c){//對o的操作}

而如果集合中的元素是自定義的類,自定義的類就要實現Iterable接口才能使用for-each的遍歷方法。

Comparable和Comparator

Comparable:可比較的,實現了Comparable介面的類需要重寫int compareTo(Object o)方法,表示這個可以比較大小,就可以使用集合的sort進行排序,也可以放入TreeSet中。
Comparator:比較器,一般用來比較兩個自定義類物件的大小,
實現該介面的類需要重寫 int compare(Object o1, Object o2) 方法。
並且一般用比較的類名加Comparator作為類名。
如果要把自定義的物件加到排序了的集合中,可以用Comparator作為引數來初始化集合。

String、StringBuffer、StringBuilder

效率StringBuilder > StringBuffer > String
String每次改變都會建立新的物件
StringBuffer是同步的
StringBuilder是非同步的
 
 String:適用於少量的字串操作的情況
 StringBuilder:適用於單執行緒下在字元緩衝區進行大量操作的情況
 StringBuffer:適用多執行緒下在字元緩衝區進行大量操作的情況