泛型、LinkedList类、Vector类、Stack类、Queue接口

本文主要内容:

(1)泛型
(2)LinkedList类
(3)Vector类
(4)Stack类
(5)Queue接口
(6)LinkedList与ArrayList的区别

1.泛型
(1)泛型是用来规定数据类型的,定义时用一种符号来代替某种类型,在使用具体的数据类型时,将定义的符号替换掉。
(2)泛型可以定义在哪里?
泛型类:类定义时,描述的某种数据类型
泛型接口:与泛型类基本一致,但泛型接口必须添加泛型
泛型方法:方法调用时传参数,方法的泛型与类无关,带有泛型的方法可以不放在带有泛型的类中
注意:泛型需要用引用数据类型来代替

2.LinkedList类(java.util包)实现了Deque ,List ,Queue
Deque(双端队列,具有队列和栈性质的数据结构)
(1)底层是双向链表的数据结构形式:适合插入或删除,不适合遍历轮询
(2)构建对象:无参构造、带Collection的有参构造

LinkedList();构建一个空列表
LinkedList(Collection c);
构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序

(3)常用方法:
add(E e):尾插元素
void addFirst(E e):在该链表的开头插入指定元素
void addLast(E e):将指定元素插入列表的末尾
E getFirst():返回链表的第一个元素
E getLast():返回链表中最后一个元素
E peek():检索但不删除列表的头
E peekFirst():检索但不删除链表的第一个元素
E peekLast():检索但不删除链表的最后一个元素
E poll():检索并删除链表的头
E pollFirst():检索并删除链表的第一个元素
E pollLast():检索并删除链表的最后一个元素
void push(E e):将该元素推送到由列表表示的栈上
E pop():从此列表中栈上弹出一个元素
List<E> subList(int fromIndex,int toIndex):返回fromIndex(含)和toIndex之前的
视图

3.Vestor类(java.util包)实现了Collection,List
(1)Vector是ArrayList的早期版本,Vector底层是用动态数组的形式存储的,Vector是线程同步的,安全性高,效率低
(3)扩容方式与ArrayList(1.5倍)不同,默认扩容方式为2倍,可以通过构造方法创建对象时修改这一机制
(3)构造方法:

Vector():构造一个空向量,使其内部数据数组的大小为 10 ,标准容量增量为零。
Vector(Collection<? extends E> c):
构造一个包含指定集合元素的向量,按照集合的迭代器返回的顺序。
Vector(int initialCapacity)
构造具有指定初始容量并且其容量增量等于零的空向量。
Vector(int initialCapacity, int capacityIncrement)
构造具有指定的初始容量和容量增量的空向量。

(4)常用方法参考ArrayList的一些方法

4.Stack类(java.util包)实现了Collection,List
(1)构造方法只有一个无参的

Stack():创建了一个空堆栈

(2)常用方法:
boolean=push(E e):将一个元素压入栈顶
E=pop():将一个从栈顶取出并删除
E=peek():查看栈顶元素,不删除
boolean=empty():判断栈内元素是否为空
int=search():查找给定的元素在栈中的位置

5.Queue接口(java.util包)实现了Deque
(1)通常子类:LinkedList、ArrayDeque
(2)通常用无参方法创建对象

Queue():创建一个空队列

(3)常用方法:
boolean=add(E e):将指定的元素插入到此队列中
E=element():检索,但不删除,这个队列的头
boolean=offer(E e):将指定的元素插入到此队列中
E=peek():检索但不删除此队列的头,如果此队列为空,则返回 null
E=poll():检索并删除此队列的头,如果此队列为空,则返回 null
E=remove():检索并删除此队列的头

6.ArrayList与LinkedList的区别
(1)ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构
(2)对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList底层是链表,每移动一次,都要根据引用去找下一个元素
(3)对于在指定index位置新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值