Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java 编译器在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而加快。Java 允许对个别泛型的类型参数进行约束,包括以下两种形式(假设 T 是泛型的类型参数,C 是一般类、泛类,或是泛型的类型参数):T 实现接口 I 。T 是 C ,或继承自 C 。
注:
在类上声明的泛型不能够用在static修饰的方法上
List的用法:
- List<String> list=new ArrayList<String>();//创建List对象
- //向list中添加值
- list.add("aa0");
- list.add("aa1");
- list.add("aa2");
- list.add("aa3");
- //创建迭代器 第一种方法
- Iterator<String> it=list.iterator();
- while(it.hasNext()){
- String value=it.next();
- System.out.println(value);
- }
- //第二种方法
- for(String value:list){
- System.out.println(value);
- }
Map的用法:
- 第一种使用方法:
- Map<Integer, String> map=new HashMap<Integer, String>();
- map.put(1, "ss1");
- map.put(2, "ss2");
- map.put(3, "ss3");
- Set<Integer> set=map.keySet();
- //第一种输出方法
- Iterator<Integer> it=set.iterator();
- while(it.hasNext()){
- int key=it.next();
- System.out.println(key+" "+map.get(key));
- }
- //第二种输出方法
- for(Integer key:set){
- System.out.println(key+" "+map.get(key));
- }
- 第二种使用方法:
- //创建Map对象
- Map<Integer, String> map=new HashMap<Integer, String>();
- map.put(1, "ss1");//添加Map的键值
- map.put(2, "ss2");
- map.put(3, "ss3");
- Set<Map.Entry<Integer, String>> set = map.entrySet();
- for (Map.Entry<Integer, String> entry : set) {
- System.out.println(entry.getKey());
- System.out.println(entry.getValue());
- }
Set的用法:
- Set set=new Set();
- set.add("abc");
- set.add("cde");
- set.add("efg");
- set.add("fgh");
- set.add("abc"); //重复的abc,set会自动将其去掉
- Iterator<String> it=set.iterator();
- while(it.hasNext()){
- String value=it.next();
- System.out.println(value);
- }