当前位置: 首页 > news >正文

【JAVA基础】HashSet、LinkedHashSet、TreeSet使用区别

HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;

LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;  

TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

用例代码:

package com.test;  

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.TreeSet;

/**
* @description 几个set的比较
* HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
* LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
* TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
*
@author Zhou-Jingxian
*
*/
public class SetDemo {

public static void main(String[] args) {

HashSet<String> hs = new HashSet<String>();
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("E");
hs.add("C");
hs.add("F");
System.out.println("HashSet 顺序:\n"+hs);

LinkedHashSet<String> lhs = new LinkedHashSet<String>();
lhs.add("B");
lhs.add("A");
lhs.add("D");
lhs.add("E");
lhs.add("C");
lhs.add("F");
System.out.println("LinkedHashSet 顺序:\n"+lhs);

TreeSet<String> ts = new TreeSet<String>();
ts.add("B");
ts.add("A");
ts.add("D");
ts.add("E");
ts.add("C");
ts.add("F");
System.out.println("TreeSet 顺序:\n"+ts);
}
}


输出效果:

HashSet 顺序:
[D, E, F, A, B, C]
LinkedHashSet 顺序:
[B, A, D, E, C, F]
TreeSet 顺序:
[A, B, C, D, E, F]



转载于:https://www.cnblogs.com/ibook360/archive/2011/11/28/2266062.html

相关文章:

  • 嵌入式BI工具:好钢要用在刀刃上
  • 【转载】系统性能调优吐血总结分享
  • Linux 2.6内核中新的锁机制--RCU
  • java finally关键字
  • 光伏行业兼并重组加快 两大难题仍困扰行业发展
  • 晒一下我的统一网站管理平台
  • capybara2--准备环境
  • 如何判断自己的WP7 SDK版本
  • c#基础--参数,返回值
  • Fiddler抓包11-HTTPS证书Actions无法导出问题
  • Ubuntu下Memcache的安装与基本使用
  • 整理linux网关与安全第三章
  • Facebook报纸上刊登整版广告 教人们识别假新闻
  • 云计算万亿市场遭地方争抢 泡沫或成房地产第二
  • git 从版本控制中删除文件及.gitignore的用法
  • CSS实用技巧干货
  • EventListener原理
  • FastReport在线报表设计器工作原理
  • Java IO学习笔记一
  • JAVA多线程机制解析-volatilesynchronized
  • React组件设计模式(一)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • supervisor 永不挂掉的进程 安装以及使用
  • 工作手记之html2canvas使用概述
  • 码农张的Bug人生 - 见面之礼
  • 深度解析利用ES6进行Promise封装总结
  • 使用parted解决大于2T的磁盘分区
  • 项目实战-Api的解决方案
  • 译有关态射的一切
  • 用element的upload组件实现多图片上传和压缩
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 自定义函数
  • 如何用纯 CSS 创作一个货车 loader
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #控制台大学课堂点名问题_课堂随机点名
  • ( 10 )MySQL中的外键
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (十三)Flask之特殊装饰器详解
  • (原創) 未来三学期想要修的课 (日記)
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .dwp和.webpart的区别
  • .Net 代码性能 - (1)
  • .net 微服务 服务保护 自动重试 Polly
  • .NET开发人员必知的八个网站
  • .NET微信公众号开发-2.0创建自定义菜单
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @ModelAttribute 注解
  • [ C++ ] STL---stack与queue