Java基础系列(基础):java程序员被误导的Set概念!
前言
今天博主将为大家分享:Java基础系列(基础):java程序员被误导的Set概念!不喜勿喷,如有异议欢迎讨论!首先推荐结合博主的这两篇文章进行阅读===>Java系列(面试必备):简单的hashCode和equals面试题,有好多坑! 和
Java系列(面试必备):你真的了解Java中”==”和equals()的区别?
我们经常听说List是有序且重复的,Set是无序不重复的。这里有个误区,这里说的顺序有两个概念。
一是按添加的顺序排列
二是按自然顺序a-z排列。
Set并不是无序的,传统说的Set无序是指HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。
上代码
package com.test;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
/**
*
* @Description: Set测试
* @ClassName: SerTest.java
* @author ChenYongJia
* @Date 2019年4月12日 晚上23:25
* @Email chen87647213@163.com
*/
public class SerTest {
public static void main(String[] args) {
Set<String> set=new HashSet<>();
set.add("six");
set.add("one");
set.add("five");
set.add("two");
set.add("four");
set.add("three");
set.forEach(e->System.out.print(e+" "));
System.out.println();
// 保证元素添加的顺序:LinkedHashSet
Set<String> set2=new LinkedHashSet<>();
set2.add("six");
set2.add("one");
set2.add("five");
set2.add("two");
set2.add("four");
set2.add("three");
set2.forEach(e->System.out.print(e+" "));
System.out.println();
// 保证元素自然的顺序:TreeSet
Set<String> set3=new TreeSet<>();
set3.add("six");
set3.add("one");
set3.add("five");
set3.add("two");
set3.add("four");
set3.add("three");
set3.forEach(e->System.out.print(e+" "));
System.out.println();
}
}
输出结果
six four one five two three
six one five two four three
five four one six three two
到这里:Java基础系列(基础):java程序员被误导的Set概念!分享完毕了,快去试试吧!
最后
-
更多参考精彩博文请看这里:《陈永佳的博客》
-
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97802.html