现在的位置: 首页 > 综合 > 正文

Set接口

2013年10月07日 ⁄ 综合 ⁄ 共 3692字 ⁄ 字号 评论关闭

 Set 接口也是Collection 接口的子接口,但是与Collection 或List 接口不同的是,Set接口中不能加入重复的元素。

Set 接口的常用子类:

   1.散列的存放:HashSet 

      HashSet 是Set 接口的子类,主要特点是:里面不能存放重复的元素,而且采用散列的存储方式,所遇没有顺序。

   2.有序的存放:TreeSet 

 

集合的输出:

 在类集中提供了一下4种常见的输出方式:

   Iterator:迭代输出,是使用最多的输出方式。

   ListIterator:是Iterator 的子接口,专门用于输出List 中的内容。

   Enumeration:是一个旧的的接口,功能与Iterator类似。 

   foreach:JDK 1.5 之后提供的新功能,可以输出数组或集合。

 

迭代输出:Iterator 

  所谓的迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出。

 

双向迭代输出:ListIterator

 Iterator 接口的主要功能是由前向后单向输出,而此时如果想实现由后向前或是由前向后的双向输出,则必须使用Iterator的子接口---ListIterator。

 

Java新支持:foreach

  foreach 除了可以完成数组的输出,对于集合也同样支持。

 

Map接口:

 Collection, Set, List 接口都属于单值的操作,即每次只能操作一个对象,而Map 与他们不同的是,每次操作的是一对对象,即二元偶对象,Map 中每个元素都使用 Key--value 的形式存储在集合中。Map接口的定义如下:

    public iterface Map<K,V>

在Map 上也应用了泛型,必须同时设置好key 或 value 的类型,在Map中每一对 key--value 都表示一个值。

 

与Collection 类似,如果想使用Map 接口也必须依靠其子类实例化,Map 接口中常用的子类介绍如下:

  HashMap: 无序存放的,是新的操作类,key不允许重复。

  Hashtable:无序存放的,是旧的操作类,key 不允许重复。

  TreeMap:可以排序的Map 集合,按集合中的key 排序,key 不允许重复。

  WeekHashMap:弱引用的Map 集合,当集合中的某些内容不再使用时清除掉无用的数据,使用gc 进行回收。

  IdentityHashMap:key 可以重复的Map 集合。

 

  HashMap 操作实例:

  

 

Hashtable 操作实例:

 

 

TreeMap 操作实例:

 

 

Map接口的使用注意事项:

【注意1】:不能直接使用迭代输出Map 中的全部内容

 对于map 接口来说,其本身是不能直接使用迭代(如 Iterator, foreach) 进行输出的,因为 Map 中的每个位置存放的是一对值(key--value),而Iterator 中每次只能找到一个值。所以使用非迭代进行输出,则必须按照以下的步骤完成:

   (1)将Map 的实例通过 entrySet() 方法变为Set 接口对象。

   (2)通过Set 接口实例化为Iterator 实例化。

   (3)通过Iterator 迭代输出,每个内容都是 Map.Entry 的对象。

   (4)通过 Map.Entry 进行 key--value 的分离。

 【注意2】:直接使用非系统类作为key

 

集合工具类:Collections 

 在集合的应用开发中,集合的若干接口和若干个子类是最常用的,但是JDK 中提供了一种集合操作类的工具类---Collections,可以直接通过此类方便地操作集合。

Collections 类的定义:

  public class Collections extends Object

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

抱歉!评论已关闭.