前言
如C++中的STL,Java也提供了许多封装好了的数据结构。
本文将大致介绍如何使用这些封装好了的数据结构。
集合类型的特性
1. Java中的集合类型采用的是策略和实现相分离的型式,也就是说提供集合的抽象定义,也提供集合的具体实现,用户可以按照自己的需要去继承,改写。
比如,你可以定义一个链表类的对象变量,然后任你选择是让它采用何种实现。
在之后的代码中,你只用知道这个链表类的对象,至于它是何种方式实现,一概不管。
2. 所有的集合类型都继承了Collection接口和Iterator接口。
这两个接口里面有很多很实用的方法,请读者自行查阅。
集合类型的遍历方式
STL中有迭代器,Java的集合类型中自然也有,而且Java中的迭代器是支持删除的(C++中不支持)。
使用的方法和C++中很像,具体方法请参考下面示例代码。
集合类型的种类
1. List
2. Set
3. Map
这三类集合的逻辑结构在C++部分的博客已提到过,和Java中是一样的,这里不再累述。
但它们在Java中有更多的物理实现,当需要用到数据结构相关处理的时候,请根据需要查找相关资料,也许已经有封装好了的实现了。
代码示例 - 以Set为例
1 package test;
2
3 import java.util.HashSet;
4 import java.util.Iterator;
5 import java.util.Set;
6
7 /**
8 * @author FangMeng
9 * @version 1.0.0
10 * @2014-12-09
11 */
12 public class Java7Learn {
13
14 public static void main(String[] args) {
15
16 // 构造一个测试的Set集合
17 Set<String> s = new HashSet<>();
18 s.add(new String("1"));
19 s.add(new String("2"));
20
21 /*
22 * 遍历
23 */
24 Iterator<String> i = s.iterator();
25 while(i.hasNext()){
26 System.out.println(i.next());
27 }
28
29 /*
30 * 检索
31 */
32 String testStr = "1";
33 if (s.contains(testStr)) {
34 System.out.println("contain: " + testStr);
35 }
36
37 testStr = "2";
38 if (s.contains(testStr)) {
39 System.out.println("contain: " + testStr);
40 }
41
42 testStr = "3";
43 if (s.contains(testStr)) {
44 System.out.println("contain: " + testStr);
45 }
46
47 }
48 }
运行结果
小结
Java中的集合结构实现很多,在项目中根据需要多多查询手册,定可让开发更加效率。