• 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类型,所以要强转一下
      }
    }

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

    It's a lonely road!!!
  • 相关阅读:
    日期转换DateTime
    linux 常用命令
    springcloud集成 xxl-job
    maven-阿里云镜像
    mysql 8.0+忘记root密码-linux
    java注解与自定义注解
    mysql联合索引的生效规则
    Maven常用命令及其作用、常见问题、常用命令使用场景举例
    反射的理解
    VirtualBox创建centos
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14686548.html
Copyright © 2020-2023  润新知