StringBuilder :通過toString方法,StringBuilder物件將會轉換為不可變的String物件。
public class Demo16StringBuilder {
public static void main(String[] args) {
// 鏈式建立
StringBuilder sb = new StringBuilder(“Hello”).append(“World”).append(“Java”);
// 呼叫方法
String str = sb.toString();
System.out.println(str); // HelloWorldJava
}
}
迭代器:
package cn.itcast.sh.iterator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* 演示迭代器的使用
*/
public class IteratorDemo {
public static void main(String[] args) {
//建立集合物件
Collection coll=new ArrayList();
//向集合中新增資料
coll.add(“aaaa”);
coll.add(“bbbb”);
coll.add(“cccc”);
//根據當前集合獲取迭代器物件
Iterator it = coll.iterator();
//使用while迴圈遍歷集合
while(it.hasNext())//it.hasNext()表示迴圈條件,如果為true,說明集合中還有元素可以獲取,否則沒有元素
{
//獲取元素並輸出
System.out.println(it.next());
}
/*
* 注意:針對集合每次獲取到的迭代器物件,使用完之後,迭代器中的隱式游標就已經到了集合的最後,這樣就
無法再去使用next獲取集合中的元素。如果還要獲取,需要重新在獲取一個迭代器物件。
*/
//使用for迴圈遍歷集合 推薦開發使用
/*for (Iterator it2 = coll.iterator(); it2.hasNext();) {
System.out.println(it2.next());
}*/
}
}
while迴圈的迭代,由於初始化迭代器物件在while迴圈上面,在整個while迴圈結束後,迭代器物件還可以繼續使用,但是集合中已經沒有資料了,如果還仍然使用迭代器物件繼續獲取資料,會報異常,如果還要獲取,需要重新在獲取一個迭代器物件。所以對於while迴圈當迭代器物件使用完之後,迭代器就會變成一個沒有用的垃圾,佔記憶體。
對於for迴圈的迭代,由於初始化迭代器物件在for迴圈小括號中,在整個for迴圈結束後,迭代器物件就不能繼續使用,也不會佔記憶體,所以建議大家以後在開發中使用迭代器遍歷集合最好使用for迴圈。