Java基础系列(基础):java程序员被误导的Set概念!

导读:本篇文章讲解 Java基础系列(基础):java程序员被误导的Set概念!,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!