六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 29|回复: 0

JAVA集合

[复制链接]

升级  82%

51

主题

51

主题

51

主题

秀才

Rank: 2

积分
173
 楼主| 发表于 2013-1-27 06:15:22 | 显示全部楼层 |阅读模式
集合:将多个元素组成一个单元的对象,用于存储,检索,操纵和传输对象。
集合分为Collection跟Map:
Collection分为List跟Set,Map分为TreeMap跟HashMap
List分为ArrayList跟LinkedList
Set分为HashSet跟TreeSet(必须存储相同类型数据否则异常)等。

Collection只存对象,对于基本类型必须先用Wrap Class转换成对象才能进行存储。
Set:无序但是唯一;List:有序可重复;
ArrayList:读快改慢;LinkedList(双向链表):改快读慢;Hash位于其中。
Map中不能存放重复的键-值对。

HashMap与HashTable:
1.HashMap新,1.2新引入,HashTable旧。
2.HashMap中允许有空值NULL。
3.HashMap支持同步安全。
ArrayList与Vector:
1.Vector有而ArrayList没有的方法:addElement,elementAt等。
2.Vector的实现相对ArrayList稍微复杂,Vector功能并不比ArrayList强大,代码量确是两倍。
3.Vector由于使用了synchronized方法(线程安全),所以性能会下降。
Vector中的Size()是指:存储的元素个数。而capacity:容量数(即使为空)。

使用技巧:
一般都用Collection c = new ArrayList();为什么不写成 ArrayList list = new ArrayList(); ?
因为用Collection它NEW一个子类对象调父类引用,以后若想改成Set集合。直接改就行,(直接让Collection重新指向一个新的子类对象即可)因为对象c不可能调用ArrayList这个子类特有的方法!所以只要后面是子类对象即可!
这么写灵活性高,可扩展!

Iterator接口:
1。所有实现Collection接口的容器类都有一个iterator方法用以返回一个Iterator接口的对象。
2。Iterator读取的方向是单向的,也就是说不能读取以前度过的数据。但是ListIterator可以。
3。其定义的方法:
boolean hasNext(); //判断游标右边是否有元素
Object next();     //返回游标右边元素并将游标移动到下一个位置
void remove();     //删除游标左边的元素,在执行完next之后该操作只执行一次
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表