Java HashSet 中元素的排序

2024-04-25

为什么第二组和第三组保持顺序:

Integer[] j = new Integer[]{3,4,5,6,7,8,9};
LinkedHashSet<Integer> i = new LinkedHashSet<Integer>();
Collections.addAll(i,j);
System.out.println(i); 

HashSet<Integer> hi = new HashSet<Integer>(i);
System.out.println(hi); 

LinkedHashSet<Integer> o = new LinkedHashSet<Integer>(hi);
System.out.println(o); 

这是我得到的输出:

3,4,5,6,7,8,9
3,4,5,6,7,8,9
3,4,5,6,7,8,9

第二个(仅使用HashSet)只是一个巧合。来自JavaDocs http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html:

此类实现 Set 接口,由哈希表(实际上是 HashMap 实例)支持。它不保证集合的迭代顺序;特别是,它不保证顺序随着时间的推移保持不变。此类允许 null 元素。

第三个(LinkedHashSet) is designed http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashSet.html像那样:

Set接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与 HashSet 的不同之处在于,它维护一个贯穿其所有条目的双向链表。该链表定义了迭代顺序,即元素插入集合的顺序(插入顺序)。请注意,如果将元素重新插入集合中,插入顺序不会受到影响。 (如果在调用前 s.contains(e) 返回 true 时调用 s.add(e),则元素 e 会重新插入到集合 s 中。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java HashSet 中元素的排序 的相关文章

  • Java中String的字符编码是什么?

    我实际上对 Java 中字符串的编码感到困惑 我有一些问题 如果您知道答案 请帮助我 1 Java字符串在内存中的本机编码是什么 当我写作时String a Hello 将以哪种格式存储 由于 Java 是独立于机器的 我认为系统不会进行编
  • 如果我在 XML 布局中声明一个片段,如何将它传递为 Bundle?

    我有一个活动已替换为片段 该活动采用了一个 Intent 其中包含一些有关该活动应该显示哪些数据的额外信息 现在 我的 Activity 只是执行相同工作的 Fragment 的包装器 如果我使用标记在 XML 中声明该片段 如何将该捆绑包
  • 在Java中如何将数字转换为字母?

    有没有比这更好的方法将数字转换为其字母等效值 private String getCharForNumber int i char alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ toCharArray if i g
  • 如何生成带logo的二维码?

    我正在为 Android 设备开发应用程序 我想生成带有徽标的二维码 With ZXing I know how to generate simple QR codes like this one But I want to generat
  • 使用矩阵参数创建 GET 请求

    我将使用的网络服务需要矩阵参数 http tester com v1 customers lastname Jackson firstname Tim bookingreference 7Y9UIY 而不是通常的 http tester c
  • Maven:在项目之间共享源

    我有两个项目 它们是一个共同父项目的子项目 还有一个生成器项目和生成器对应的maven插件项目 此外 两个子项目都使用相同的输入文件 该文件用于代码生成 parent pom child1 jar src main generator in
  • 如何将json从android发送到php?

    为了将 json 从 android 发布到 php 我使用了 Volley 库StringRequest目的 StringRequest sr new StringRequest Request Method POST url new R
  • 如何在angularjs中读取pdf流

    I got the following PDF stream from a server 如何在 AngularJS 中读取这个流 我尝试使用以下代码在新窗口中将其作为 PDF 文件打开 success function data wind
  • 何时使用环境变量与系统属性?

    我想知道以下哪种方法是首选方法 我们可以将事情设置为APP HOME path to file export in profile或类似的东西 并将其访问为System getenv APP HOME 或者 也可以使用属性作为 DAPP H
  • Checkstyle 规则防止调用某些方法和构造函数

    是否可以使用 Checkstyle 来禁止使用某些使用系统相关默认值 区域设置 字符集等 的构造函数或方法 我更喜欢强制执行一项政策 程序员应该明确了解系统相关的值 所以我认为以下物品是危险的 all the constructors of
  • Java TreeMap时间复杂度-lowerKey

    时间复杂度是多少lowerKey Java实现中的操作TreeMap 我认为它是 log n 但我在文档中找不到它 更基本操作的复杂性已有详细记录 此实现提供了有保证的 log n 时间成本 containsKey 获取 放置和删除操作 顺
  • 什么是样板代码、热点代码和热点?

    我知道这些术语是在性能实现 优化的背景下使用的 最近一直在研究这个问题 并尝试过搜索 但没有得到任何例子 清楚地阐述 描述这些概念以及在现实世界开发场景中实现这些问题 概念 有人可以彻底解释这些术语 示例场景以及可能使用这些概念和术语的地方
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • Spring JPA (Hibernate) Entity Manager 何时将连接返回到连接池?

    在我的 java 进程中 我使用以下 spring 配置连接到 MySql Configuration EnableTransactionManagement PropertySources PropertySource classpath
  • java中类的命名约定 - 全部大写

    在 Java 中 当类全部大写时 如何命名它 例如 如果我想创建一个班级来选择某些人成为 VIP 我应该将类命名为 VIPSelector 还是 VipSelector Thanks 你的两个选择都有效 类的主要目标是让它们以大写字母开头
  • 在 Android 应用程序中编辑/添加 IPTC 元数据

    我看过许多其他类似的问题 但似乎没有一个有准确的答案 我正在开发一个可处理大量图像的 Android 应用程序 我希望通过编辑 IPTC 关键字标签 或其他适当标签 的值来向图像添加信息 我在用元数据提取器 http drewnoakes
  • 如何使用 Java 11 和 JavaFX 11 运行 ControlsFX 示例应用程序

    ControlFX 网站 http fxexperience com controlsfx says 如果您想使用 ControlsFX 示例应用程序 只需 下载 ControlsFX 版本并在上运行以下命令 命令提示符 请务必将 替换为实
  • Java:如何复制对象数组?

    现在 我有一个 Point 对象数组 我想制作一个COPY该数组的 我尝试过以下方法 1 Point temp mypointarray 2 Point temp Point mypointarray clone 3 Point temp
  • 扫描图像到可读文本

    我想知道是否有一种方法可以通过编写代码来将带有文本的扫描图像转换为可读文本 那可能吗 OCRTools http www ocrtools com是我用于 net 的 对于Java 我用过Aspire http asprise com pr
  • 从 Web 服务器异步调用应用程序

    我有一个用 Spring 制作的 在 Tomcat 上运行的 Web 应用程序 在同一台机器上有一个普通的 Java 应用程序 我想通过从Web服务器调用Java应用程序来执行它 但我想让应用程序不会使用服务器的资源 它涉及分类器的训练 因

随机推荐

  • 从 Python 中的 OLS 摘要获取 Durbin-Watson 和 Jarque-Bera 统计数据

    我正在运行一列值的 OLS 摘要 OLS 的一部分是 Durbin Watson 和 Jarque Bera JB 统计数据 我想直接提取这些值 因为它们已经被计算出来 而不是像我现在使用 durbinwatson 那样将这些步骤作为额外步
  • 如何将对堆栈变量的引用传递给线程?

    我正在编写一个 WebSocket 服务器 其中 Web 客户端连接以与多线程计算机 AI 下棋 WebSocket 服务器想要传递一个Logger对象到 AI 代码中 这Logger对象会将日志行从 AI 传送到 Web 客户端 这Log
  • 如何在两个表单之间传递文本框数据?

    如何通过按钮在不使用 Show ShowDialog 的情况下将文本框值发送到两个表单之间的文本框 我希望文本框无需打开表单即可获取值 要访问文本框数据 您需要使用 textBox1 Text 表单是一个对象 因此您可以定义一个更新文本框值
  • 如何在我的应用中将 Google 地图语言更改为印地语?

    我在 Android 应用程序中使用 Google 地图 我在我的应用程序中实现了语言本地化 因此 我希望每当用户更改应用程序语言时 谷歌地图语言也会更改为印地语 我尝试了以下方法来更改应用程序中 Google 地图的语言 String l
  • 在 Django 中提供 Rails-way i18n 支持的好方法

    新 Rails 中有一件事让我羡慕 国际化支持 Django 也有一项 但我更喜欢 Rails 的风格 Rails 和 Django 方法之间的主要区别在于哪种字符串的行为类似于键值转换映射中的键 即 Django 版本 键 主要 语言的字
  • 在 python 中将 Latex 代码转换为 mathml 或 svg 代码

    是否有任何 python 代码允许获取乳胶代码 用于方程 并将其解析为 mathml 或 svg 代码 一个以字符串 latex 代码 作为参数并输出字符串 svg 或 mathml 代码 的简单函数将是完美的 附言 我找到了这个http
  • Bootstrap 4 导航栏
  • 列表
  • 我需要一些有关引导导航栏的帮助 Bootstrap v4 0 0 beta 3 我必须更改什么才能使按钮文本是单行而不是彼此之间 当该行已满时 其他按钮应从下一行的左侧开始 目前我使用这段代码
  • 服务器中的 Firebase 令牌管理

    我对 firebase 和 android 通知还是很陌生 我希望能够根据某些规则向单个用户发送通知 到目前为止我读到的是可以通过以下方式生成令牌 FirebaseInstanceId getInstance getToken 然后 令牌在
  • 您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用吗?

    您可以将 CMFCVisualManager 与基于对话框的应用程序一起使用来更改应用程序的外观吗 如果是这样 它是如何完成的 这个想法是使用随 MSVC 2008 发布的 MFC 功能包来更改控件 例如按钮 的形状 颜色等 不 不能这样做
  • 必须在 PIMPL 中提供析构函数

    main pimpl sample cpp include pimpl sample hpp using namespace std int main pimpl sample p return 0 pimpl sample cpp inc
  • Hololens 模拟器中的网络摄像头支持

    笔记本电脑的网络摄像头可以在最新的Hololens模拟器中使用吗 我正在关注这个教程https learn microsoft com en us windows mixed reality mr azure 302 https learn
  • Byte-Buddy:方法拦截 InvoiceHandler 与 MethodDelegation 到 GeneralInterceptor

    我使用 Byte Buddy 动态生成 Java 接口方法的实现 并将对这些方法的调用委托给现有代理对象的单个方法 第一个版本的灵感来自如何使用 ByteBuddy 创建动态代理 https stackoverflow com questi
  • 根据当前用户过滤 Power BI 报告

    我们目前正在为我们公司开发 Power BI 仪表板 Office 365 并希望根据当前用户的偏好定制仪表板上的信息 我们公司有多个部门和子部门 因此向所有用户显示每个部门的数据会适得其反 例如 如果 Bob 属于欧洲销售 他将仅看到欧洲
  • 通过 Discord OAuth 传递字符串?

    我想知道是否可以使用 Discord OAuth 识别范围 同时还将重要的补充信息传递到重定向 URL site with important variable gt oauth page gt site that needs import
  • 超时设置为无限时间时出现超时异常

    在我的 C NET 3 5 应用程序中 我使用 CastleProject ActiveRecord 而不是 NHibernate 这是使用 MS SQL Server 2008 的桌面应用程序 我已将 ADO 命令超时设置为 0 以防止批
  • 语音识别和语调检测

    我想做一个 iOS 应用来计算疑问句 我会寻找 WH 问题以及 我会吗 格式化问题 我对语音或音频技术领域不太了解 但我Google了一下 发现语音识别SDK很少 但仍然不知道如何检测和绘制语调 是否有支持语调或情感语音识别的 SDK 据我
  • 如何从对话框片段获取主机片段中的按钮点击

    我有一个 listFragment 我想在 listItemClick 上显示 DialogFragment 是 否 我想取回 listFragment 中的用户选择 是 否 我已经阅读了有关侦听器接口机制的信息 但它与 Activityf
  • Google Analytics 未在 Swift 中初始化

    由于某种原因 我的新 swift 应用程序没有初始化 Google Analytics 我在项目中为所有 GAnalytics 文件创建了一个桥接标头 import GAI h import GAIDictionaryBuilder h i
  • 使用 cmake 和 Visual Studio 的一个解决方案中的多个项目

    我有一个 Visual Studio 2010 解决方案 其中包含 5 个项目 两个库和三个应用程序 依赖于库 我现在想将构建系统迁移到 CMake 也能够在 Linux 下编译 我已经了解了如何为一个项目编写 CMakeLists txt
  • Java HashSet 中元素的排序

    为什么第二组和第三组保持顺序 Integer j new Integer 3 4 5 6 7 8 9 LinkedHashSet