List和ArrayList的区别

本文深入解析Java中的List与Map接口及其实现类,如ArrayList、HashMap等,详细介绍了它们的特点、实现原理及如何通过接口进行优雅编程。同时,提供了使用自定义类替代标准集合的实例。

1. 

List

是接口,

List

特性就是有序

,

会确保以一定的顺序保存元素

ArrayList

是它的实现类

,

是一个用数组实现的

List. 

Map

是接口

,Map

特性就是根据一个对象查找对象

HashMap

是它的实现类

,HashMap

hash

表实现的

Map,

就是利用对象的

hashcode(hashcode()

Object

的方法

)

进行快速散列查找

.(

关于散列查找

,

可以参看

<<

数据结构

>>) 

2. 

一般情况下

,

如果没有必要

,

推荐代码只同

List,Map

接口打交道

比如

:List list = new ArrayList(); 

这样做的原因是

list

就相当于是一个泛型的实现

,

如果想改变

list

的类型

,

只需要

List list = new LinkedList();//LinkedList

也是

List

的实现类

,

也是

ArrayList

的兄弟类

 

这样

,

就不需要修改其它代码

,

这就是接口编程的优雅之处

另外的例子就是

,

在类的方法中

,

如下声明

private void doMyAction(List list){} 

这样这个方法能处理所有实现了

List

接口的类

,

一定程度上实现了泛型函数

3. 

ArrayList,HashMap

,

List,Map(

或者

Collection)

来定制你的自定义类

  

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值