A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima_llt 高级黑马   /  2015-4-14 23:06  /  325 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Set集其实就是一个不包含重复元素的 collection。
Set元素存取是无序的,就是说元素取出和存入的顺序不一致;
Set元素是不可以重复的,就是说Set元素具有唯一性。
Set和Collecion的功能是一样的。

Set常见的子类有:
HashSet和TreeSet。

HashSet的底层是哈希表,多线程实现是不同步的,这点要注意!
下面先演示一下HashSet。
1 创建一个哈希表
2 添加元素
3 添加重复元素
4 利用迭代器取出元素
5 观察元素取出的顺序
  1. import java.util.*;
  2. class HashSetDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 //1 创建一个哈希集合
  7.                 HashSet hs = new HashSet();

  8.                 //2 添加元素
  9.                 hs.add("num02");
  10.                 hs.add("num03");
  11.                 hs.add("num01");
  12.                 hs.add("num08");
  13.                 hs.add("num05");
  14.                 hs.add("num05");
  15.                 hs.add("num07");
  16.                 hs.add("num07");
  17.                 hs.add("num09");
  18.                 hs.add("num04");
  19.                 System.out.println("添加非重复元素:"+hs.add("num06"));
  20.                 System.out.println("添加重复元素:"+hs.add("num06"));

  21.                 //获取迭代器取出元素
  22.                 for(Iterator it = hs.iterator(); it.hasNext(); )
  23.                         System.out.println(it.next());
  24.         }
  25. }
复制代码
运行结果:


因为add方法的返回值是boolean类型的,所以打印了true和false。
所以要注意:boolean add(obj)这个返回类型!

从运行结果来看,元素取出的顺序和存入的顺序是不一致的!
这就是Set所谓的元素存取是无序的!
千万不要混淆元素是无序的。
另外,通过运行结果也不难发现,元素是没有重复的。
因为当添加重复元素的时候,add返回值为false,
重复元素是添加不进去的!


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马