大雜燴

就取一發表於2018-12-16

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迴圈的迭代和for迴圈的迭代有什麼不同?

while迴圈的迭代,由於初始化迭代器物件在while迴圈上面,在整個while迴圈結束後,迭代器物件還可以繼續使用,但是集合中已經沒有資料了,如果還仍然使用迭代器物件繼續獲取資料,會報異常,如果還要獲取,需要重新在獲取一個迭代器物件。所以對於while迴圈當迭代器物件使用完之後,迭代器就會變成一個沒有用的垃圾,佔記憶體。

對於for迴圈的迭代,由於初始化迭代器物件在for迴圈小括號中,在整個for迴圈結束後,迭代器物件就不能繼續使用,也不會佔記憶體,所以建議大家以後在開發中使用迭代器遍歷集合最好使用for迴圈。

總結:在開發中,建議大家使用迭代器遍歷集合的時候最好使用for迴圈。

 

相關文章