您好,登錄后才能下訂單哦!
j2se1.5的新特點XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
List words = new ArrayList();
需要替換成:
List
這樣做的一個優點是,如果你插入數組的數據類型不是字符串的話,你就可以在編譯的時候發現和解決這個bug。如果不使用上面的聲明,這個bug不可能在編譯的時候發現,程序運行后會出現ClassCastException 的錯誤。
另一個好處是:你不在需要擔心集合中的元素超出了范圍:
String title = ((String) words.get(i)).toUppercase();
使用:
String title = words.get(i).toUppercase();
/**
* 從一個指定的集合中去掉一個4個字符的元素。
*/
static void expurgate(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
String s = (String) i.next();
if(s.length() == 4)
i.remove();
}
}
上面的代碼,有些缺陷,在運行的過程中可能出錯。比如:在集合中如果包含一個StringBuffer類型的數據。
以后可以這樣做:
static void expurgate(Collection
for (Iterator
if (i.next().length() == 4)
i.remove();
}
void cancelAll(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
TimerTask tt = (TimerTask) i.next();
tt.cancel();
}
}
現在可以這樣做:
void cancelAll(Collection c) {
for (object o : c)
((TimerTask)o).close();
}
注意:上面的冒號,它表示:in。在C#中或者很自然的一個替代是:foreach 和in 。但是考慮到兼容性,我們沒有那樣做。
void cancelAll(Collection
for (TimerTask task : c)
task.cancel();
}
據個例子:
map數據類型的key用來存儲單詞,value用來存儲單詞重復的次數。這是一個計算單詞出現頻率的小程序。
public class Freq {
private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new TreeMap();
for (int i=0; i
Integer freq = (Integer) m.get(args[i]);
m.put(args[i], (freq==null ? ONE :
new Integer(freq.intValue() + 1)));
}
System.out.println(m);
}
}
下面是采用裝箱,泛型,和增強的for循環后的代碼:
public class Freq {
public static void main(String args[]) {
Map
for (String word : args)
m.put(word, m.get(word) + 1);
System.out.println(m);
}
}
需要注意:上面的程序假定拆箱為null的時候,值為0。
之二:
.NET/develop/read_article.asp?id=18442">http://www.csdn.net/develop/read_article.asp?id=18442
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。