• 第三周学习视频(一)


    一、向量

    import java.util.Vector;
    格式:Vector< 向量元素的数据类型 > 变量名 ;
    eg. Vector<String> vs = new Vector<String>( );


    增加元素:public boolean add(E o)
    修改元素:public E set(int index, E element)
    删除元素:public void clear( )/public void removeAllElements( )/public E remove(int index)
    查询元素:通过迭代器(iterator)获取向量对象的各个元素。
    类java.util.Vector的成员方法 public Iterator iterator( )
    接口java.util.Iterator的成员方法 boolean hasNext( )
    接口java.util.Iterator的成员方法 E next( )

    二、哈希函数或散列函数

    哈希表类:java.util.Hashtable/java.util.HashMap/java.util.WeakHashMap

    三、泛型

    泛型本质上讲是指参数化类型
    类型参数:可以用在类、接口和方法的创建中,分别称为泛型类泛型接口泛型方法

    四、泛型方法

    eg. Public static <E> void printArray( E[ ] inputArray )
    泛型方法中,类型参数可以用来声明方法的返回类型参数类型局部变量类型,充当传递给泛型方法的实参类型的占位符。
    类型参数只能表示引用类型(Integer、Double、Character),不能表示基本类型 (int、double、char等)。

    五、编译过程的“擦拭”技术

    当编译器将泛型方法翻译成java字节码时,会删除类型参数表,并用实际的类型替换类型参数,这一过程被称为擦拭。
    默认情况下,所有的泛型类型都会使用Object类型替换。其实是使用“上界” 替换。

    六、泛型接口

    eg. 如果某个类实现了泛型接口 Comparable<T>,使用该接口中的comparaTo()方法则可比较该类的两个对象。
    比较大小可以使用关系运算符“>”、 “<”,但这些运算符不能用于比较引用类型。可考虑采用泛型接口Comparable<T>(位于java.lang包中)。


    Public static <T extends Comparable<T>> T maximum(T x, T y, T z) { }
    实现了泛型接口Comparable<T>的类引用,通过extends调用泛型接口Comparable<T>。
    类型参数列表内调用接口仍使用extends。


    对于表达式x.compareTo(y):
    如果返回值为0,则表示x和y相等;
    如果返回值大于0,则表示x大于y;
    如果返回值小于0,则表示x小于y。


    此处Comparable被称为类型参数的上界。
    =>Public static Comparable maximum (Comparable x, Comparable y, Comparable z) { Comparable max =x;…… }
    格式:[ 接口修饰词列表 ] interface 接口名 < 类型参数列表 > { 接口体 }

    六、泛型类

    eg. Public class Stack<E>
    elements=(E[ ]) new Object[size];
    格式:[ 类修饰词列表 ] class 类名 < 类型参数列表 > { 类体 }

    七、总结

    泛型方法:
    [ 方法修饰词列表 ] < 类型参数列表 > 返回值类型 方法名([形式参数列表]) { 方法体 }
    泛型类:
    [ 类修饰词列表 ] class 类名 < 类型参数列表 >
    [ extends 父类名 ][ implements 接口名称列表 ] { 类体 }
    泛型接口:
    [ 接口修饰词列表 ] interface 接口名 < 类型参数列表 >
    [ extends 接口名称列表 ] { 接口体 }


    类型参数的定义格式
    1、类型变量标识符
    2、类型变量标识符 extends 父类型
    3、类型变量标识符 extends 父类型 1 & 父 类型 2 & ... ... & 父类型 n
    eg. class J_T < T extends J_C1 & J_C2 >
    (class J_c1,interface J_C2)

  • 相关阅读:
    Java IO: InputStreamReader和OutputStreamWriter
    Java IO: 序列化与ObjectInputStream、ObjectOutputStream
    Java IO: Buffered和Data
    [Codeforces Round #613 (Div. 2)]
    [算进] 巴士
    [算进] 小木棍
    [算进] 数据备份
    [算进] 双端队列 题解
    [算进] 蚯蚓 题解
    [算进] 赶牛入圈 题解
  • 原文地址:https://www.cnblogs.com/caihan/p/12394096.html
Copyright © 2020-2023  润新知