黑马程序员技术交流社区

标题: 【记录】代码练习-HashSet集合 [打印本页]

作者: Kevin.Kang    时间: 2015-7-15 16:06
标题: 【记录】代码练习-HashSet集合
本帖最后由 Kevin.Kang 于 2015-7-17 14:42 编辑
  1. package com.kxg.set;

  2. import java.util.HashSet;
  3. import java.util.Set;

  4. /*
  5. * Collection
  6. *                 |--List
  7. *                         有序(存储和取出顺序一致),可重复
  8. *                 |--Set
  9. *                         无序(存储和取出顺序不一致),唯一
  10. *
  11. * HashSet:不保证set的迭代顺序,特别是它不保证该顺序恒久不变。
  12. *
  13. * 注意:
  14. *         虽然集合是无序的,但作为集合肯定有自己的存储顺序,而你的顺序恰好和它的存储顺序一致,
  15. *         这代表不了有序,可以多存储一些元素,就可以看到效果。
  16. *
  17. * HashSet保证元素唯一性,底层依赖的是:hashCode()和equals()方法。
  18. * 步骤:
  19. *                 首先比较哈希值
  20. *                 如果相同:
  21. *                         比较地址值或者equals()进行比较
  22. *                 如果不同:
  23. *                         直接添加到集合中
  24. * String类中,已经重写了hashCode()和equals()方法。
  25. * 自定义类中没有重写,默认使用Obeject中的,一般来说都是不同的,所以需要自己重写(有快捷键)。
  26. */
  27. public class SetDemo {
  28.         public static void main(String[] args) {
  29.                 Set<String> set = new HashSet<String>();

  30.                 set.add("hello");
  31.                 set.add("world");
  32.                 set.add("world");
  33.                 set.add("hello");
  34.                 set.add("android");
  35.                 set.add("world");

  36.                 for (String s : set) {
  37.                         System.out.println(s);
  38.                 }
  39.         }
  40. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2