集合——Set

本文详细介绍了Java中Set集合的三种实现类:HashSet、LinkedHashSet和TreeSet。HashSet提供快速的添加、查询和删除操作,但无序;LinkedHashSet在保持添加顺序的同时,兼顾哈希表的高效性;TreeSet则通过二叉树结构实现有序,适合按内容查询。此外,还展示了Set的遍历方式,包括for-each循环、迭代器和Lambda表达式。
摘要由CSDN通过智能技术生成

1.Set
特点:存储一组无序的,唯一的对象。

2.HashSet

  • 采用Hashtable哈希表存储结构。
  • 优点:添加速度快,查询快,删除快。
  • 缺点:无序。
public class TestSet {
    public static void main(String[] args) {
        //创建Set集合对象
        Set<String> set= new HashSet<>();

        //添加元素
        set.add("熊大");
        set.add("熊二");
        set.add("维尼");
        //遍历元素
        System.out.println(set);
    }
}

运行结果:
在这里插入图片描述
3.LinkedHashSet

  • 采用哈希表存储结构,同时用链表维护次序。
  • 有序(按照添加的顺序)
public class TestSet {
    public static void main(String[] args) {
        //创建Set集合对象
        //Set<String> set= new HashSet<>();
        Set<String> set= new LinkedHashSet<>();

        //添加元素
        set.add("熊大");
        set.add("熊二");
        set.add("维尼");
        //遍历元素
        System.out.println(set);
    }
}

运行结果:
在这里插入图片描述

4.TreeSet

  • 采用二叉树的存储结构。
  • 优点:有序(自然顺序) 查询比List快(按内容查询)。
  • 缺点:查询速度没有HashSet 快。
public class TestSet {
    public static void main(String[] args) {
        //创建Set集合对象
        //Set<String> set= new HashSet<>();
        //Set<String> set= new LinkedHashSet<>();
        Set<String> set= new TreeSet<>();

        //添加元素
        set.add("S");
        set.add("C");
        set.add("A");
        set.add("R");
        set.add("E");
        //遍历元素
        System.out.println(set);
    }
}

运行结果:
在这里插入图片描述
5.Set的一些使用方法与list一样
但是与索引相关的方法Set都没有,Set中没有get()方法来获取集合中的数据下标,因为Set是无序的。

6.Set的遍历
1>方法一:for-each

  for(String elem:set){
            System.out.println(elem);
        }

方法二:迭代器

Iterator<String> iterator=set.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

方法三:Lambda表达式+流式编程(JDK1.8)

set.forEach((elem)-> System.out.println(elem));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSK2580

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值