靜態導入、增強for循環

一、靜態導入:JDK1.5的時候纔出現的
1、靜態導入的作用:簡化書寫,靜態導入可以作用於一個類的所有靜態成員。

2、靜態導入的格式:
import static 包名.類名.靜態的成員;

package mfq.jdk;
import java.util.ArrayList;
import java.util.Collections;
/*
public class Demo1 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(16);
        list.add(12);
        list.add(18);
        list.add(15);

        //排序
        Collections.sort(list);
        System.out.println("集合的元素"+list);
        System.out.println("索引值"+Collections.binarySearch(list, 12));
    }
}
*/

import static java.util.Collections.*;
//import static java.util.Collections.sort; 
//import static java.util.Collections.binarySearch;
//import static java.util.Collections.max; 
import static java.lang.System.out;
public class Demo1 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(16);
        list.add(12);
        list.add(18);
        list.add(15);

        sort(list);
        //System.out.println("集合的元素"+ list);
        //System.out.println("索引值"+ binarySearch(list, 12));
        //System.out.println("最大值:"+ max(list));
        out.println("集合的元素"+ list);
        out.println("索引值"+ binarySearch(list, 12));
        out.println("最大值:"+ max(list));
    }
}

3、 靜態導入要注意的事項:
1)如果靜態導入的成員與本類的成員存在同名的情況下,那麼默認使用本類的靜態成員,如果需要指定使用靜態導入的成員,那麼需要在靜態成員前面加上類名。
2)舉例說明:

二、增強for循環:
1、增強for循環的作用: 簡化迭代器的書寫格式。(注意:增強for循環的底層還是使用了迭代器遍歷。)

2、增強for循環的適用範圍: 如果是實現了Iterable接口的對象或者是數組對象都可以使用增強for循環。

3、增強for循環的格式:

for(數據類型  變量名  :遍歷的目標){

}

4、增強for循環要注意的事項:
1)增強for循環底層也是使用了迭代器獲取的,只不過獲取迭代器由jvm完成,不需要我們獲取迭代器而已,所以在使用增強for循環變量元素的過程中不準使用集合對象對集合的元素個數進行修改。

2)迭代器遍歷元素與增強for循環變量元素的區別:使用迭代器遍歷集合的元素時可以刪除集合的元素,而增強for循環變量集合的元素時,不能調用迭代器的remove方法刪除元素。

3)普通for循環與增強for循環的區別:普通for循環可以沒有變量的目標,而增強for循環一定要有變量的目標。

5、補充:

6、自定義類使用增強for循環

package mfq.jdk;

import java.util.Iterator;

//自定義一個類使用增強for循環
class MyList implements Iterable<String>{

    Object[] arr = new Object[10];

    int index = 0;//當前的指針

    public void add(Object o){
        arr[index++] = o;
    }
    public int size(){
        return index;
    }

    public Iterator<String> iterator() {

        return new Iterator<String>(){

            int cursor = 0;//當前遊標
            public boolean hasNext() {

                return cursor<index;
            }

            public String next() {
                return (String) arr[cursor++];
            }

            public void remove() {

            }

        };
    }
}

public class Demo6 {
    public static void main(String[] args) {
        MyList list = new MyList();
        list.add("Lucy");
        list.add("Endeavor");
        list.add("Lily");

        for(String item : list){
            System.out.println("元素"+item);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章