长春建站模板搭建百度 营销怎么收费
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();// 保证元素添加的顺序:LinkedHashSetSet<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();// 保证元素自然的顺序:TreeSetSet<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概念!分享完毕了,快去试试吧!
最后
-
更多参考精彩博文请看这里:《陈永佳的博客》
-
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!