java程序员被误导的一个概念,90%人不知道

简介: 我们经常听说List是有序且重复的,Set是无序不重复的。这里有个误区,这里说的顺序有两个概念,一是按添加的顺序排列,二是按自然顺序a-z排列。Set并不是无序的,传统说的Set无序是指HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。

我们经常听说List是有序且重复的,Set是无序不重复的。这里有个误区,这里说的顺序有两个概念,一是按添加的顺序排列,二是按自然顺序a-z排列。Set并不是无序的,传统说的Set无序是指HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。

保证元素添加的顺序:LinkedHashSet

保证元素自然的顺序:TreeSet

下面通过一个实例看下就明白了

结果输出:

s3 s4 s5 s1 s2

s1 s5 s3 s4 s2

s1 s2 s3 s4 s5

相关文章
|
28天前
|
Java C++
Java中ReentrantLock的概念深入理解
Java中ReentrantLock的概念深入理解
15 1
|
28天前
|
Java 调度
Java中常见锁的分类及概念分析
Java中常见锁的分类及概念分析
17 0
|
11天前
|
存储 SQL 安全
Java 安全性编程:基本概念与实战指南
【4月更文挑战第27天】在当今的软件开发领域,安全性编程是一个至关重要的方面。Java,作为广泛使用的编程语言之一,提供了多种机制来保护应用免受常见的安全威胁。本博客将探讨 Java 安全性编程的基本概念,并通过实际示例来展示如何实现这些安全措施。
22 3
|
3天前
|
存储 Java
一文搞懂Java中所有变量概念!
一文搞懂Java中所有变量概念!
15 2
一文搞懂Java中所有变量概念!
|
9天前
|
Java 开发者
Java中的异常处理:从基本概念到最佳实践
【4月更文挑战第30天】 在Java编程中,异常处理是确保程序健壮性和稳定性的关键机制。本文将深入探讨Java异常处理的基本概念,包括异常的分类、异常的抛出与捕获,以及如何有效地使用异常来增强代码的可读性和可维护性。此外,我们还将讨论一些关于异常处理的最佳实践,以帮助开发者避免常见的陷阱和误区。
|
9天前
|
存储 Java 编译器
【Java探索之旅】数组概念与初始化指南:动静结合
【Java探索之旅】数组概念与初始化指南:动静结合
19 0
|
9天前
|
XML Java 测试技术
Java异常处理神器:Guava Throwables类概念与实战
【4月更文挑战第29天】在Java开发中,异常处理是保证程序稳定性和可靠性的关键。Google的Guava库提供了一个强大的工具类Throwables,用于简化和增强异常处理。本篇博客将探讨Throwables类的核心功能及其在实战中的应用。
24 2
|
9天前
|
安全 Java 测试技术
利用Java反射机制提高Spring Boot的代码质量:概念与实战
【4月更文挑战第29天】Java反射机制提供了一种强大的方法来在运行时检查或修改类和对象的行为。在Spring Boot应用中,合理利用反射可以提高代码的灵活性和可维护性。本篇博客将探讨Java反射的核心概念,并展示如何通过反射提高Spring Boot项目的代码质量。
28 0
|
11天前
|
算法 Java API
Java中的多线程编程:概念、实现与挑战
【4月更文挑战第28天】 在现代软件开发中,多线程编程已成为提高应用性能和响应能力的关键工具。特别是在Java这种广泛使用的编程语言中,多线程不仅增加了程序的并发性,还提升了资源利用率和用户体验。然而,多线程编程也带来了设计复杂性、数据一致性和线程安全等一系列挑战。本文旨在探讨Java多线程的核心概念,展现其实现方式,并讨论在设计和开发过程中可能遇到的技术难题及其解决方案。
|
11天前
|
监控 Java API
Java 模块化设计:概念与实战应用
【4月更文挑战第27天】模块化设计是现代软件开发的关键,它帮助开发者构建可管理、可维护的大型系统。Java 平台的模块化支持始于 Java 9,引入了一种全新的模块系统。
20 3