4.21Java容器中使用泛型---位于java.util包里面

4.21Java容器中使用泛型---位于java.util包里面

读容器源码要有目的,不能为了读源码而读源码

容器相关类型都定义了泛型,在开发和工作中使用容器类时都要使用泛型

泛型类在集合中的使用

public class Test{
   public static void main(String[] args){
       //以下代码中List、Set、Map、Iterator都是与容器相关的接口
       List<String> list = new ArrayList<String>();
       Set<Map> mans = new HashSet<Man>(); //Map是形参,所以有两个泛型
       Map<Integer, Man> maps = new HashMap<Integer, Man>();
       Iterator<Man> interator = mans.iterator();
  }
}
package com.collection;

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

/**
* 测试容器+泛型
* @author Lucifer
*/
public class TestGeneric02 {
   public static void main(String[] args) throws Exception {
       MyCollection<String> mc = new MyCollection<String>(); //JDK1.7以后后面的构造器可以不加

       mc.set("Lucifer",0); //没理解为什么要抛出异常???

       String b = mc.get(0);

       /*读List和ArrayList源码*/
       List list = new ArrayList();

       /*读Map源码*/
       //实现类HashMap源码和类Map源码
       Map map = new HashMap();

  }
}

/*定义一个类*/
class MyCollection02<E>{

   //加了泛型以后上面创建对象一环警告了---说明我们在建对象的时候后面要跟一个实际类型,在构造器后面也要加
   /*定义一个object数组*/
   Object[] objs = new Object[5];

   /*封装往数组里面插入对象的方法*/
   public void set(E e, int index) {

       objs[index] = e;

  }

   /*
   形参是:
   对象
   对应的索引下标
   第一次这里的判断是index>0有问题,因为索引从0开始
   通过"<>"添加泛型,里面可以写参数名---自定义泛型
   一般情况使用的是T,E,V三个字母
    */

   /*获得的方法*/
   public E get(int index){
       return (E) objs[index]; //又因为objs对象是Object类型,所以要强转一下
  }
}

容器是接口,里面要实现。泛型是标签,定义形参。在创建对象的时候可以贴上标签

posted @ 2021-04-21 19:14  俊king  阅读(313)  评论(0)    收藏  举报