静态导入、增强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);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章