黑马程序员--泛型

原创 2013年12月04日 21:16:00

泛型

一、泛型基础

         1、泛型只作用于编译器,编译器是一行一行的检查的

         2、ArrayList<E>中的E称为类型变量或类型参数

         3、整个ArrayList<Integer>称为参数化类型

         4、ArrayList<Integer>中Integer称为类型参数的实例或实际类型参数

         5、ArrayList<Integer>中的<>念typeof.

         6、ArrayList称为原始类型

         7、参数化类型可以引用一个原始类型的对象,编译器警告

         8、原始类型可以引用一个参数化类型的对象,编译器警告

         9、参数化类型不考虑类型参数的继承关系。

       10、在创建数组实例时,数组的元素不能使用能够参数化的类型。

       11、通配符?,通配符可以引用其他各种类型化的类型,?定义的变量主要用作引用那个,可以调用与参数无关的方法,不能调用与参数化有关的方法。

        12、通配符的上边界ArrayList<? extends Number>

        13、通配符的下边界ArrayList<? super Integer>

二、泛型的应用


在决定使用 List 还是使用 ArrayList 类(两者具有类似的功能)时,记住 List 类在大多数情况下执行得更好并且是类型安全的。如果对 List 类的类型 T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。

如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List 类的实现。这意味着不必对 List 对象的列表元素进行装箱就可以使用该元素,并且在创建大约 500 个列表元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。

import java.util.ArrayList;

import java.util.List;

 

//声明一个泛型类  

public classTestGennericList {

    public static void main(String[] args) {

        // 声明一个List对象,只加入string参数

        List<String>names = newArrayList<String>();

        names.add("乔峰");

        names.add("欧阳峰");

        names.add("马蜂");

        // 遍历List

        for (String name : names) {

            System.out.println(name);

        }

        System.out.println("-----");

        // 向List中插入元素

        names.add(1, "张三峰");

        // 移除指定元素

        names.remove("马蜂");

        for (String name : names) {

            System.out.println(name);

        }

    }

}

泛型的用法还有很多种,如泛型方法,泛型委托,泛型接口等。

 

相关文章推荐

黑马程序员--自定义泛型(补充)

---------------------- ASP.Net+Android+IO">http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S、...

黑马程序员--高新技术--泛型

泛型: 1.5后出现的新特性,解决了安全问题,是一个类型安全机制。 好处: 1.将运行时期转移到编译时期,方便程序员解决问题。提高了安全性。 2.避免了强制转换的麻烦 ...

黑马程序员 java泛型学习总结(一)

-------  android培训 、java培训 、期待与您交流  ------- 一.java泛型的引入和作用 在JDK1.5以后,引入了泛型的概念,泛型的出现可以有效的解决程序安全机制...

41.黑马程序员-集合框架、泛型

------- android培训、java培训、期待与您交流! ----------  一、集合框架概述         1.体系概述 为什么出现集合类? 面向对象语言对事物的体...

黑马程序员------第11天笔记(泛型)

----- android培训、java培训、期待与您交流! ---------- 泛型 1,泛型:JDK1.5后java出现的新特性,用于解决安全问题,是一种类型安全机制参照的是数组的定...

黑马程序员----牛叉的集合之Set,泛型,Map

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.Set体系 该体系特点:无序,不重复。 |--HashSet:底层数据结构使用的是哈希...

黑马程序员--泛型、udp、tcp协议学习

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------- 17.泛型:jdk1.5出现的安...
  • iewell
  • iewell
  • 2013年06月25日 14:33
  • 426

黑马程序员----集合2(Collection、迭代、泛型)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-集合类 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多 个对象的操作,就对对...

黑马程序员——34,TreeSet与泛型

黑马程序员——34,TreeSet与泛型 旧博客整理归纳: 一:TreeSet----》         TreeSet集合的底层数据结构是二叉树结构,元素进入容器后会自动被排序,不可以存放重复元素,...

黑马程序员--java基础复习之泛型

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 泛型 泛型:JDK1.5版本以后出现的新特性。用于解决安全问题,是一个安全机制。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员--泛型
举报原因:
原因补充:

(最多只允许输入30个字)