欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

泛型,数据集合类

程序员文章站 2022-05-23 14:41:41
...

Java 泛型

定义:通过类型参数化来提高程序代码重用性

类型参数化:将类,接口或方法所处理数据的类型抽象成参数,这样可以定义出泛型类,泛型接口或泛型方法。
泛型,数据集合类

泛型编程

定义:使用java API中的泛型类,泛型接口或泛型方法编程,亦或是编写自己的泛型类

注:限定类型实参,在某个类族或接口族范围内。
例:

GenericSet<T extends Number>//只能是是数值类number或其子类

泛型族

定义:基于同一泛型类为某个类族或接口族中的每个类分别定义出一个具体的类,这些具体类合在一起为泛型族。
例:

泛型类:A<T>
泛型族:A<Number>,A<Byte>,A<Short>,,,

通配符类型的引用变量

三种通配符类型

泛型名<?>

A<?>ref;//引用任何对象

泛型名<? extends 类名>

A<? extends Number>ref;//引用number及其子类

泛型名<? super 类名>

A<? super Integer>ref;//只能引用类integer或其超类

数据集合类

泛型,数据集合类

Collection接口

泛型,数据集合类

Map接口

泛型,数据集合类

Iterator(迭代器)

描述了遍历数据集合时的元素的元素位置信息
泛型,数据集合类

Collections类

包含各种数据集合算法(静态方法)
具体细节

ArrayList< E>

实现了Collection,可以实现动态数组的功能。
方法一:增强for循环遍历:

for(String attribute : list) 
{ 
    System.out.println(attribute); 
}

方法二:for循环遍历

for(int i = 0 ; i < list.size() ; i++)
{ 
   system.out.println(list.get(i)); 
}

方法三:用迭代器迭代:

Iterator it = list.iterator();
 while(it.hasNext()) {
 System.ou.println(it.next);
 }

LinkedList< E>

实现集合接口Collection。使用双端队列类可实现队列和堆栈的功能。

队列:先进先出

offer()//队尾添加元素
poll()//取出并删除队列头元素

堆栈:后进先出

push()//向堆栈中压入一个元素
pop()//从堆栈中弹出一个元素

HashSet< E>

实现了集合接口Collection

特点:

集合中数据元素是无序的
集合中数据元素不能重复(用equals判断)
不能使用普通for语句遍历

HashMap< E>

实现了映射接口Map<K,V>

特点:

数据元素是无序的
数据元素的键不能重复
映射没有迭代器,其中元素没有序号。(如需遍历,将键转为集合,再按集合遍历)

参考