java学习day16

一  常见的数据结构

      栈,队列,数组,链表
栈:先进后出
队列:先进先出
数组:查询快,增删慢
链表:查询慢,增删快

2:List的三个实现类

(1)List的三个实现特点:
List
|--ArrayList
底层是数组,查询快,增删慢
线程不安全,效率高
|--Vector
底层是数组,查询快,增删慢
线程安全,效率低
|--LinkedList
底层是链表,查询慢,增删快
线程不安全,效率高

(2)使用哪一个
如果对线程安全有要求,必须用vector
如果对线程安全没有要求,
看系统中是查询多还是增删多
如果查询多,用ArrayList
如果增删多,用LinkedList

(3)ArrayList
重写equqls三个步骤
1. 判断是否为同一个对象
2. 判断是否为该类的对象
3. 向下转型,然后根据需求比较成员变量
(4)Vector
有自己的特殊功能。
但是不用,被新功能给替代了。
(5)LinkedList
有自己的特殊功能。可以很方便的操作头和尾。

三  泛型

(1)泛型 是一种把明确类型的工作放在了创建对象、实现接口或者调用方法时候才去明确的特殊的类型。
(2)格式:
<数据类型>
(3)好处:
A:解决了黄色警告线问题
B:把运行期间的转换异常给提前到了编译期间
C:优化了程序设计,不需要做强制类型转换了
(4)泛型的前世今生
A:泛型类(在创建该类对象的时候明确了上面的泛型)
B:泛型方法(在调用方法的时候明确了上面的泛型)
C:泛型接口(在实现接口时、在创建实现类对象时明确上面的泛型)

四  增强for

(1)格式:
for(数组或集合元素的类型 变量名 : 数组或集合对象)
{
//变量名其实就是一个集合或者数组中元素的引用(代表一个元素对象)
直接使用变量名调用方法
}
(2)for循环可以遍历数组和集合
(3)可以看做是一个迭代器的简化形式
(4)遍历List集合三种方式
迭代器
普通for+get
增强for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值