Java中遍历Set集合的三种方法「建议收藏」

Java中遍历Set集合的三种方法「建议收藏」1.迭代遍历:Setset=newHashSet();Iteratorit=set.iterator();while(it.hasNext()){Stringstr=it.next();System.out.println(str);}2.for循环遍历:for(Stringstr:set){System.out.println(str);}…

大家好,又见面了,我是你们的朋友全栈君。

Map集合:链接: Map集合的五种遍历方式及Treemap方法
Set集合:链接: Java中遍历Set集合的三种方法
TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法
LIst集合:链接: Java中List集合的三种遍历方式(全网最详)
集合区别:链接: java中list,set,map集合的区别,及面试要点

1.迭代遍历:
Set set = new HashSet();
Iterator it = set.iterator();
while (it.hasNext()) {

String str = it.next();
System.out.println(str);
}

2.for循环遍历:
for (String str : set) {

System.out.println(str);
}

优点还体现在泛型 假如 set中存放的是Object

Set set = new HashSet();
for循环遍历:
for (Object obj: set) {

if(obj instanceof Integer){

int aa= (Integer)obj;
}else if(obj instanceof String){

String aa = (String)obj
}
…

}

1 Set集合介绍
Collection接口可以存放重复元素,也可以存放不重复元素。List可以存放重复元素,Set就是不重复的元素。
通过元素的equals方法,来判断是否为重复元素。
Set集合取出元素的方式可以采用:迭代器,增强 for

2 HashSet(哈希表)
此类实现了Set接口,由哈希表(实际是HashMap实例)支持。它不保证set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。

特点:无序集合,存储和取出的顺序不同,没有索引,不存储重复元素。代码的编写和ArrayList完全一致。
HashSet特点:
底层数据结构:哈希表(链表和数组的结合体);
存储取出都比较快;
线程不安全,运行速度快;
3 对象的哈希值
如果没有重写父类,每次运行的结果都是不同的整数;
如果子类重写父类的方法,哈希值,自定义;
存储到HashSet的依据;
4 字符串的哈希值
String类继承Object,重写了父类的方法hashCode,

5 哈希表的存储过程

public static void main(String[] args) { 
   
        HashSet<String> set=new HashSet<String>();
        set.add(new String("abc"));
        set.add(new String("abc"));
        set.add(new String("abc"));
        set.add(new String("bbc"));
        set.add(new String("bbc"));
        System.out.println(set);

    }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133348.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下连接mysql数据库命令,linux连接mysql命令[通俗易懂]

    linux下连接mysql数据库命令,linux连接mysql命令[通俗易懂]linux连接mysql是最基本的操作之一,对于初学者来说我们可以通过命令来连接mysql,下面由学习啦小编为大家整理了linux下连接mysql命令的相关知识,希望对大家有所帮助!linux连接MYSQL命令格式:mysql-h主机地址-u用户名-p用户密码linux连接mysql命令实例1、连接到本机上的MYSQL找到mysql的安装目录,一般可以直接键入命令mysql-uroot…

    2022年9月2日
  • Alex 的 Hadoop 菜鸟教程: 第9课 zookeeper 介绍和使用

    Alex 的 Hadoop 菜鸟教程: 第9课 zookeeper 介绍和使用看了之前的教程,会发现多处出现zookeeper,比如hadoop的autofailover得用zookeeper,Hbase的RegionServer也得用zookeeper。其实不止hadoop,包括现在小有名气的Storm用的也是zookeeper。那么zookeeper究竟是做什么用的?

    2022年5月31日
  • 大佬讲MBT[通俗易懂]

    大佬讲MBT[通俗易懂]大佬讲MBT网址:https://www.youtube.com/watch?v=TnuiEGS6iyc获取模型:1.手工创建(Manualcreation)2.基于事件接口(Eventbasedinference)ApplyregularlanguagelearningalgorithmstotracesMinimizeover/underapproximat…

    2022年10月23日
  • navicat连接不上MySQL_navicat怎样连接mysql

    navicat连接不上MySQL_navicat怎样连接mysqlNavicat连接mysql数据库时,不断报1405错误,下面是针对这个的解决办法:MySQL服务器正在运行,停止它。如果是作为Windows服务运行的服务器,进入计算机管理—>服务和应用程序——>服务。如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。创建1个文本文件(此处命名为mysql-init.txt),并将下述命令置于单一行中:SETPASSW…

    2022年10月14日
  • 查看linux执行的命令记录_linuxhistory命令

    查看linux执行的命令记录_linuxhistory命令前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月28日
  • 游戏中的“垂直同步”与“三重缓冲”究竟是个啥?[通俗易懂]

    游戏中的“垂直同步”与“三重缓冲”究竟是个啥?[通俗易懂]从今天开始,我们会开启“小教程”的兄弟栏目——小科普,给大家介绍在配电脑或玩游戏过程中经常会遇到的专业名词。第一期“小科普”我们来讲讲游戏中经常会遇到的一个画面选项——垂直同步我们曾在一期语音里和大家讲探讨过垂直同步的功用,可惜语音有60秒的长度限制,并不能和大家解释清楚,那么今天就来详细分析一下“垂直同步”:它到底是干嘛用的?它有什么缺点吗?

    2022年5月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号