一、介绍
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
二、添加元素
方法:add()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); set.add("1"); // 重复的元素不会被添加 set.add("2"); // 重复的元素不会被添加 System.out.println(set); }
运行结果:
[1, 2, 3, 4]
三、判断元素是否存在
方法:contains()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); boolean contains1 = set.contains("1"); boolean contains2 = set.contains("5"); System.out.println(contains1); System.out.println(contains2); }
运行结果:
true
false
四、删除元素
方法:remove()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); System.out.println("删除前-----"+set); set.remove("1"); System.out.println("删除后-----"+set); }
运行结果:
删除前—–[1, 2, 3, 4]
删除后—–[2, 3, 4]
五、删除集合中所有元素
方法:clear()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); System.out.println("删除前-----"+set); set.clear(); System.out.println("删除后-----"+set); }
运行结果:
删除前—–[1, 2, 3, 4]
删除后—–[]
六、计算大小
方法:size()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); int size = set.size(); System.out.println(size); }
运行结果:
4
七、迭代 HashSet
方法:for() foreach()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); for (String s : set) { System.out.println("普通for循环"+s); } set.forEach(r->{ System.out.println("foreach遍历"+r); }); }
运行结果:
普通for循环1
普通for循环2
普通for循环3
普通for循环4
foreach遍历1
foreach遍历2
foreach遍历3
foreach遍历4
八、判断是否为空
方法:isEmpty()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); HashSet<String> set1 = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); boolean empty1 = set.isEmpty(); boolean empty2 = set1.isEmpty(); System.out.println(empty1); System.out.println(empty2); }
运行结果:
false
true
九、复制原列表
方法:clone()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); System.out.println("原列表---"+set); Object clone = set.clone(); System.out.println("复制列表---"+clone); }
运行结果:
原列表—[1, 2, 3, 4]
复制列表—[1, 2, 3, 4]
十、转换为字符串
方法:toString()
代码:
public static void main(String[] args) { HashSet<String> set = new HashSet<>(); set.add("1"); set.add("2"); set.add("3"); set.add("4"); System.out.println("原列表---"+set); String s = set.toString(); System.out.println("转换成字符串---"+s); }
运行结果:
原列表—[1, 2, 3, 4]
转换成字符串—[1, 2, 3, 4]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119904.html