篇一 :java泛型总结

泛型总结篇:

1)泛型参数只能是类类型

例如:List<int> // 报错

List<Integer> // 正确

2)泛型的类型参数可以有多个!

例如:List<Integer,String,Boolean> list = new

ArrayList<Integer,String,Boolean>();

3)泛型的参数类型可以使用extends,习惯称“有界类型”,

例如:List<student extends person>,person为list的上界

4)泛型可以使用通配符类型!“?” 相当于“Object”类型,(注意不可逆) 例如:List<?> //定义成这样可以添加Object类型到List里面去 List<Object>; //定义成这样不可以添加String类型到List里面去 List<? extends Object>; // 这样就可以互等了!这样还可以设定泛型的上限

5)带泛型的类,构造方法写法不变,其后不可以加泛型!

…… …… 余下全文

篇二 :Java泛型总结

Java泛型总结

1. 什么是泛型?

泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。

因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期望的类型,如下面的代码所示:

Map m = new HashMap();

m.put("key", "blarg");

String s = (String) m.get("key");

要让程序通过编译,必须将 get() 的结果强制类型转换为 String,并且希望结果真的是一个 String。但是有可能某人已经在该映射中保存了不是 String 的东西,这样的话,上面的代码将会抛出 ClassCastException。

…… …… 余下全文

篇三 :c#中的泛型总结

c中的泛型总结

泛型

一、泛型体验

泛型是framework 2.0加入的一种特殊的算法重用机制,允许程序员在代码中将变量的类型先用类型占位符来替代,等到运行的时候在根据传入的类来替换。

Demo1

MyList类:

1 public class MyList<T>

2 {

3 T[] arr;

4 public int count=0;

5 public MyList(int length)

6 {

7 arr = new T[length];

8 }

9 public void Add(T t)

10 {

11 arr[count] = t;

12 count++;

13 }

14

15 /// <summary>

16 /// 索引器

17 /// </summary>

18 /// <param name="index"></param>

…… …… 余下全文

篇四 :泛型总结

一、 泛型

参数化类型

泛型

泛型总结

可以操作接口、类或方法

1. 泛型的作用

<1>保证编译时的类型正确

<2>代码的复用性强

<3>代码安全性高

classGenericClass<T>{

private t obj;//指定了类型变量的类型 publicGenericClass(T obj){

this.obj=obj;

}

public T getObj(){//指定了方法的返回值类型 Return obj;

}

}

在使用泛型时,使用实例的类型来代替类型变量就可以实例化泛型类型 实例:

泛型类 :具有一个或者多个类型变量的类就是泛型类

泛型总结

泛型总结

泛型总结

泛型总结

泛型总结

继承关系

泛型总结

泛型总结

子类除了继承父类还可以对父类进行拓展

泛型总结

泛型总结

泛型接口

拥有一个或者多个类型变量的接口

泛型总结

泛型总结

定义类型的边界

泛型方法实际就是带有一个或多个类型参数的方法

泛型总结

泛型总结

泛型总结

泛型总结

泛型总结

…… …… 余下全文

篇五 :java泛型基础知识总结

Java泛型

Java泛型是java1.5中引入的新特性,在此之前,java通过对类型Object的引用来实现参数类型的“任意化”,特点则是需要进行显示的强制类型转换。(而这种显示的类型转换可能是无法进行的,是错误的)但编译器无法发现强制类型转换可能引起的异常,异常只有在运行时才能出现,成为了系统的安全隐患。----------------------------为啥要进入泛型这个概念 泛型的本质是参数化类型,及所操作的数据类型被指定为一个参数,此参数类型可以用在类、接口、和方法的声明及创建中,分别被称为泛型类,泛型接口,及泛型方法。 使用注意事项:

泛型的类型参数只能是类类型(包括自定义类),但是不能是简单类型 泛型类型参数可以是多个

泛型的参数类型还可以是通配符类型

没有泛型的错误:

Import java.util.*;

Public class NoGenericTypeDemo{

Public static void main(String[] args)

{

List names=new ArrayList();

Names.add("张桑拿");

…… …… 余下全文

篇六 :day18(泛型、Map集合)总结

传智播客----------------------------------------------java 基础 许正 Day18总结

1、泛型类:

在写容器之前想要容器中要存什么?所以要先写好泛型

Eg:TreeSet<Person> ts=new TreeSet<Person>();

有了泛型后强制转换就没有用

Eg:public class Person implements Comparator<Person>{}

对于下面覆盖的它的compare方法就不用强制转换了。

Public int compare(Person p){}这里就不用在做强制转换了。

实现代码:

Public static void main(String[] args){

Tool t=new Tool();

t.setObject(new Cat());

t.setObject(new Dog());这时编译会出现没问题,但是运行时会出现错误,因为发生了类型转换异常,dog不能转换成Cat。

Cat c=(Cat)t.getObject();

…… …… 余下全文

篇七 :C#泛型列表ListT基本用法总结

C#泛型列表List<T>基本用法总结

示例代码如下:

namespace SampleListT
{
  class Program
  {
      static void Main(string[] args)
      {
          //using System.Collections.Generic; 命名空间中的List<T>
          //using System.Collections; 命名空间中的ArrayList  
          //都实现了列表集合,一个是泛形集合,一个是非泛型的
          //下面我们将Person对象加到集合中

          Person p1 = new Person( "aladdin" , 20 );
          Person p2 = new Person("zhao", 10);
          Person p3 = new Person("jacky", 40);

          //如果不制定list的容器大小,默认是0,只要有元素加入是,会自动扩展到4,如果第5个元素加入时,就变成了8,第9个加入,就成16
          //可以看出,总是成倍的增长,扩展时要重新开辟内存,这样会影响效率,如果事先知道元素个数,或者可能个数,最好给个尽量大的权衡值
          //我们加入3个元素,设容器大小为4.注:设为4不是指只能放4个元素,如果超出,一样也会成倍扩展,这样做只是为了尽量扩展带来的开销
          List<Person> list = new List<Person>(4);
         
          list.Add(p1);
          list.Add(p2);
          list.Add(p3);

          //本方法是清除多于的没有用的内存空间,例:如果开辟大小为100,而我们只用了4个,其余的放着,是不是很浪费 
          //本方法调用时会检查元素个数是不是占到了容器大小的90%以上,如果是,则不进行回收.
          list.TrimExcess();

          //ArrayList方法与List<>用法一样,不同的是,它是对象集合,参数是Object这样会有装箱拆箱的可能,尽量用List<>
          //本处不再做演示

…… …… 余下全文

篇八 :【个人总结系列-47】C C++编程注意问题总结-模板和泛型编程-结构体注意-中文字符读取-产生随机数

C/C++编程注意问题总结-模板和泛型编程-结构体注意-中文字符读

取-产生随机数

1.1.1 C++模板和泛型编程总结 ? 函数模板:函数中有不确定的类型T(或成为模板类型)

template<class T1,class T2>

T1 fun(T2 n)

函数模板在调用时自动根据参数的类型判断产生哪种类型的实例。所以程序员必须自己保证在函数中的类型T能够胜任所参与的运算。比如在函数fun()中有T类型的两个数据进行+运算,则程序员必须保证参数能够进行+运算。

? 类模板

类模板:类中有不确定的类型T(或成为模板类型)

template<class T1,class T2>

class Person{}

类中函数在类外部的实现:必须在每个函数上面加一个template<class T>,以及在类后面用<>说明类中用到的模板类型T,如下所示:

template<class T>

Person<T>::int getAge(){}

类模板在实例化时(声明和new一个类模板时),必须用<具体的T>注明类的类型。凡是实例化一个类模板时(即用这种类时),必须要注明具体的类型。如:

…… …… 余下全文