【java】遍历set集合,iterator遍历TreeSet,增强for循环遍历,set排序

测试用的集合来自上篇:https://blog.csdn.net/qq_43622777/article/details/128924730

1. 增强for循环遍历(底层还是用iterator实现的)

Set<UserInfo> userSet = new HashSet() {  // 这个括号用来创建匿名内部类
            {  // 这个括号表示是匿名内部类的实例初始化块
                add(user1);
                add(user2);
                add(user3);
                add(user4);
            }
        };
        System.out.println(userSet + "\n");
        for(UserInfo user : userSet){
            System.out.println("id:"+ user.id+", \tname:"+ user.userName+", \tage:"+ user.age);
        }
        System.out.println("\n");

输出结果:
在这里插入图片描述

2.iterator遍历TreeSet

Iterator<UserInfo> iterator = userSet.iterator();
while(iterator.hasNext()){
	UserInfo next = iterator.next();
	System.out.println("id:"+next.id+", \tname:"+next.userName+", \tage:"+next.age);
}

输出结果:
在这里插入图片描述

3.说明

  • 由以上俩结果图可以看出set集合是无序的,所以不能用普通for进行遍历,set集合没有get(indexof)方法)。
  • 当用iterator遍历TreeSet时,遍历顺序是树的中序遍历(即按照元素从小到大依次遍历)。
  • 当用iterator遍历HashSet时,遍历顺序是:按照数组下标从小到大进入桶内,如果桶是红黑树结构则按照树的中序遍历输出,如果桶是链表则按照从头到尾的顺序遍历。

4.补充

初始化set https://blog.csdn.net/piaoranyuji/article/details/125261678
set的排序:https://blog.csdn.net/qq_43622777/article/details/128838914

o(〃'▽'〃)o

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值