【Java集合之一】Java集合

[b][size=large]本文围绕以下五个部分展开: [/size][/b]

[b][size=large]一、Java集合概述[/size][/b]
[b][size=large]二、Collection接口[/size][/b]
[b][size=large]三、遍历集合元素的两种方法[/size][/b]
[b][size=large]四、操作集合的工具类:Collections[/size][/b]
[b][size=large]五、烦琐的接口:Enumeration[/size][/b]


[b][size=large]一、Java集合概述[/size][/b]

[size=medium][b]1. 概念[/b][/size]

[size=medium]Java集合类:容器类,是特别有用的工具类。[/size]


[size=medium][b]2. 用途[/b][/size]

[size=medium][b](1)[/b]可用于存储数量不确定的多个对象。[/size]

[size=medium][b](2)[/b]可用于保存具有映射关系的数据(也被称为关联数组)。[/size]

[size=medium][b](3)[/b]可用于实现常用的数据结构,如:栈、队列等。[/size]


[size=medium][b]3. 集合与数组[/b][/size]

[size=medium]数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);[/size]

[size=medium]集合里只能保存对象(实际上保存的是对象的引用变量,但习惯上认为集合里保存的是对象),不能保存基本类型的值。[/size]


[size=medium][b]4. Java集合框架[/b][/size]

[size=medium]Java和集合类主要由两个接口派生而来:Collection和Map,它们是根接口。其中,Collection接口又派生出Set、List和Queue三个常用接口。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/4651/ff0a7c0e-c136-3e28-be9e-5c9928e6a3ea.png[/img][/align]

[size=medium]Set集合最常用的实现类:HashSet、TreeSet。[/size]

[size=medium]List集合最常用的实现类:ArrayList、LinkedList。[/size]

[size=medium]Queue集合最常用的实现类:ArrayDeque、(LinkedList)。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/4653/d0cad444-db07-3e96-b6c2-46ea6e0dd2e2.png[/img][/align]

[size=medium]Map集合最常用的实现类:HashMap、TreeMap。[/size]


[size=medium][b]5. Set、List、Queue及Map四种集合[/b][/size]

[size=medium][b](1)[/b]Set:[/size]

[size=medium]无序集合,元素不可重复。[/size]

[size=medium]如果访问Set集合中的元素,只能根据元素本身来访问。[/size]

[size=medium][b](2)[/b]List:[/size]

[size=medium]有序集合,元素可重复。[/size]

[size=medium]如果访问List集合中的元素,可直接通过元素的索引来访问。[/size]

[size=medium][b](3)[/b]Queue:[/size]

[size=medium]Java提供的队列实现,有点类似List。[/size]

[size=medium][b](4)[/b]Map:[/size]

[size=medium]保存具有映射关系的数据(保存关联数组)。[/size]

[size=medium]Map保存的每项数据都是key-value对,由key和value两个值组成。key不可重复,用于标识集合里的每项数据;value可重复。[/size]

[size=medium]如果访问Map集合中的元素,可根据每项元素的key来访问其value。[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/4655/c8faf4a8-bad8-32e4-be7d-27b1b39ba789.png[/img][/align]

[size=medium]Set类似一个罐子:一个对象添加进去时,无法记住添加这个元素的顺序,因此元素不可重复;[/size]

[size=medium]List类似一个数组,可记住每次添加元素的顺序,只是长度可变。[/size]

[size=medium]Map也类似一个罐子:只是里面的每项数据都由两个值组成。[/size]


[b][size=large]二、Collection接口[/size][/b]

[size=medium][b]1. 概念[/b][/size]

[size=medium]Collection接口是 Set、List和Queue接口的父接口。该接口里定义的一些操作集合元素的方法,也可用于操作三个子集合。[/size]


[size=medium][b]2. 一些操作集合元素的方法[/b][/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/4714/d7346a19-f6de-3e71-afeb-1bc9fd4d2c18.png[/img][/align]


[b][size=large]三、遍历集合元素的两种方法[/size][/b]

[size=medium][b]1. 使用Iterator接口遍历集合元素[/b][/size]

[size=medium][b](1)[/b]概念[/size]

[size=medium]Iterator接口也是Java集合框架的成员。[/size]

[size=medium]Collection、Map:容器类,主要用于盛装其他对象;Iterator:迭代器,主要用于遍历(迭代访问)Collection集合中的元素。[/size]

[size=medium]它必须依赖于Collection对象。若有一个Iterator对象,则必然有一个与之关联的Collection对象。[/size]

[size=medium][b](2)[/b]方法[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/4724/916258f2-146b-3312-8141-28812b715ea5.png[/img][/align]


[size=medium][b]2. 使用foreach循环来遍历集合元素[/b][/size]


[b][size=large]四、操作集合的工具类:Collections[/size][/b]

[size=medium][b]1. 概念[/b][/size]

[size=medium]Java提供了可操作Set、List和Map等集合的工具类:Collections。[/size]

[size=medium]该工具类提供了大量的方法对集合元素进行 [b]排序[/b]、[b]查询[/b]、[b]替换[/b]等操作,以及可[b]将集合对象设置为不可变[/b]、[b]对集合对象实现同步控制[/b] 等。[/size]

[size=medium][b]2. 排序[/b][/size]

[size=medium][b]3. 查找、替换[/b][/size]

[size=medium][b]4. 同步控制[/b][/size]

[size=medium][b]5. 设置不可变集合[/b][/size]


[b][size=large]五、烦琐的接口:Enumeration[/size][/b]

[size=medium]Enumeration是Iterator迭代器的“古老版本”。[/size]

[size=medium]从JDK 1.0开始,它就出现了。而Iterator是JDK 2.0开始才出现的。[/size]

[size=medium]它只有2个名字很长的方法:[/size]

[align=center][img]http://dl2.iteye.com/upload/attachment/0111/4730/c04fcfa0-64fc-358b-9660-b14b1474d803.png[/img][/align]

[size=medium]由于以前“古老”的程序使用到了该接口,因此Java还保留。[/size]

[size=medium](1)它只能遍历Vector(包括其子类Stack)、Hashtable、BitSet等JDK 1.0遗留下来的古老的集合类;(2)它的方法名很冗长。由于这两个原因,通常不要使用它。除非在某些极端情况下不得不使用,否则都应使用Iterator迭代器。[/size]


[size=large]整理时重点参考:[color=red]《疯狂Java讲义》(第2版) 李刚 编著[/color][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值