集合类型的使用示例

前言

  如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中的集合结构实现很多,在项目中根据需要多多查询手册,定可让开发更加效率。

原文地址:https://www.cnblogs.com/scut-fm/p/4151978.html