六、泛型——1-泛型入门

1-泛型入门

1.编译时不检查类型的异常

  情形如下:

import java.util.List;

public class Test1 {
    public static void main(String[] args) {
        //未确定集合中的元素(未指定泛型)
        //这个集合用于保存字符串
        List list = new ArrayList();
        list.add("abc");
        list.add("bcd");
        //添加了一个Integer元素
        list.add(3);
        //Lambda表达式遍历集合
        list.forEach(str->System.out.println(((String)str).length()));    //出现异常
    }
}

2.泛型的使用

(1)为了确保在编译时检查类型,而使用泛型;

(2)简单例子:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Test2 {
    public static void main(String[] args) {
        //创建一个元素只能为String的list
        List<String> list = new ArrayList<String>();
        //当向其中添加Integer时,报错
        //list.add(1);
        //创建一个元素只能为String的set
        Set<String> set = new HashSet<String>();
        //创建一个元素只能为<String,Integer>的map
        Map<String,Integer> map = new HashMap<String,Integer>();
    }
}

3.菱形语法

  即在构造器后不需要携带完整的泛型信息,只需要“<>”即可:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Test2 {
    public static void main(String[] args) {
        //创建一个元素只能为String的list
        List<String> list = new ArrayList<>();
        //当向其中添加Integer时,报错
        //list.add(1);
        //创建一个元素只能为String的set
        Set<String> set = new HashSet<>();
        //创建一个元素只能为<String,Integer>的map
        Map<String,Integer> map = new HashMap<>();
    }
}

 

posted @ 2017-08-02 20:11  丶theDawn  阅读(138)  评论(0编辑  收藏  举报