java學習之JDK5.0特性,javajdk5.0特性
1、foreach
foreach語句格式:
for(類型 變數 : Collection集合 | 數組)
{
}
中第7行把list裡面的元素依次存放到String類型的變數s中,進行逐個列印。
<span style="font-size:14px;">public static void demo() {List<String> list = new ArrayList<String>();list.add("abc1");list.add("abc2");list.add("abc3");for(String s : list){System.out.println(s);/* * abc1 * abc2 * abc3 */}int[] arr = {3, 1, 6, 9};for(int i : arr){System.out.println(i);/*3 1 6 9*/}}</span>
傳統for和進階for的區別?
(1)傳統for可以對語句執行很多次,因為可以定義控制迴圈的增量和條件
進階for是一中簡化形式,它必須有被遍曆的目標,該目標要麼是數組,要麼是Colection單列結合
(2)對於數組的遍曆如果僅僅是擷取數組中的元素,可以使用進階for
如果要對數組的角標進行操作建議使用傳統for
2、函數可變參數
如中第14行,用 ... 表示省略的多個參數。在調用函數時可以直接傳遞多個參數而不需要建立數組。
<span style="font-size:14px;">public static void main(String[] args) {int sum = newAdd(5, 1, 4, 7, 3);System.out.println("sum = " + sum);}/* * 函數的可變參數 * 其實就是一個數組,但是接收的是數組的元素 * 自動將這些元素封裝成數組,簡化了調用者的書寫 * * 注意:可變參數類型,必須定義在參數列表的結尾處 */public static int newAdd(int... arr){int sum = 0;for(int i : arr){sum = sum + i;}return sum;}</span>
3、靜態匯入
如中第1行靜態匯入了Collections.sort,所以在第14行調用sort排序時就不用再加Colletcions所屬了。
第2行中匯入了System.*,*表示所有,所以第13和第15行輸出是就省略了System。
<span style="font-size:14px;">import static java.util.Collections.sort;//靜態匯入,其實匯入的是類中的靜態成員import static java.lang.System.*;public class StaticImportDemo{public static void main(String[] args){List<String> list = new ArrayList<String>();list.add("abc5");list.add("abc2");list.add("abc3");out.println(list);//[abc5, abc2, abc3]sort(list);out.println(list);//[abc2, abc3, abc5]}}</span>