目录
- 1. 增强for循环遍历(底层还是用iterator实现的)
- 2.iterator遍历TreeSet
- 3.说明
- 4.补充
测试用的集合来自上篇: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