数组结构

概述

数据结构是计算机存储、组织数据的方式。
通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

常见数据结构

数据存储的常用结构有:栈、队列、数组、链表和红黑树

栈结构特点:先进后出
image.png

队列

常见数据结构之队列

数据从后端进入队列模型的过程称为:入队列
数据从前端离开队列模型的过程称为:出队列
队列是一种数据先进先出的模型

数组

常见数据结构之数组

查询数据通过地址值和索引定位,查询任意数据耗时相同,查询速度快
数组是一种查询快,增删慢的模型

链表

增删块 查询慢

泛型

泛型概述

泛型:是JDK5中引入的特性,它提供了编译时类型安全检测机制
泛型的好处:
把运行时期的问题提前到了编译期间
避免了强制类型转换

泛型的定义格式

l<类型>
尖括号里面可以任意书写,按照变量的定义规则即可,一般只写一个大写字母。
比如:
l<类型1, 类型2>
指定多种泛型格式,多种类型之间用逗号隔开。
比如:

可以定义泛型的地方

定义在类后面(泛型类) ArrayList
定义在接口后面(泛型接口) Iterator
定义在方法声明上(泛型方法)

泛型类

image.png

泛型类的使用image.png

泛型接口

image.png

泛型接口使用

image.png

泛型方法

image.png

泛型方法使用

image.png

类型通配符 ?

当使用泛型的时候,无法确定泛型的具体类型时,可以使用通配符 ? 来表示某一种类型。

注意:

泛型通配符 <?> 是在使用泛型的时候,用来代表某种类型的符号。
前面出现的 等,虽然也是代表某种类型,但是在定义泛型的时候使用的。

类型通配符使用

image.png

类型通配符上下限

image.png

可变参数

如果方法中参数类型确定,但是参数个数不确定时,可以使用可变参数
image.png

注意:

1.可变参数本质是数组。
2.一个方法只能有一个可变参数。
3.如果方法中有多个参数,可变参数要放到最后