【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
示例代码::
package com.test2; import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet; public class set { public static void linkedhashset() {
// 以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
System.out.println("这里是LinkedHashset:");
Set<String> set = new LinkedHashSet<String>();
set.add("aaa");
set.add("d");
set.add("z");
set.add("aaa");
set.add("bbb");
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
String str = iter.next();
System.out.println(str);
} } public static void treeset() {
// 提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
System.out.println("这里是TreeSet:");
Set<String> set = new TreeSet<String>();
set.add("aaa");
set.add("d");
set.add("z");
set.add("aaa");
set.add("bbb");
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
String str = iter.next();
System.out.println(str);
} } public static void hashset() {
// 哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放
System.out.println("这里是HashSet:");
Set<String> set = new HashSet<String>();
set.add("aaa");
set.add("d");
set.add("z");
set.add("aaa");
set.add("bbb");
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
String str = iter.next();
System.out.println(str);
} } public static void main(String[] args) {
linkedhashset();
hashset();
treeset(); } }
结果输出:
这里是LinkedHashset:
aaa
d
z
bbb
这里是HashSet:
aaa
bbb
d
z
这里是TreeSet:
aaa
bbb
d
z
【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别的更多相关文章
- HashSet,LinkedHashSet,TreeSet的区别
Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用eq ...
- java集合框架之几种set(HashSet LinkedHashSet TreeSet )
参考http://how2j.cn/k/collection/collection-sets/691.html#nowhere HashSet LinkedHashSet TreeSet HashSe ...
- Java集合框架之HashSet浅析
Java集合框架之HashSet浅析 一.HashSet综述: 1.1HashSet简介 位于java.util包下的HashSet是Java集合框架的重要成员,它在jdk1.8中定义如下: publ ...
- hashset和treeset的区别
hashset 和 treeset的区别 hashset 和 treeset的区别 1.TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值. 2.HashSet ...
- 集合(七) Set—HashSet,TreeSet和LinkedHashSet
四.Set Set和List一样,也是继承Collection的接口,但Set是不包含重复元素的集合.由于先啃下Map,Set的难度将会大幅减小.因为Set基本上都是以Map为基础实现的,例如两个主要 ...
- JAVA_集合框架虐我千百遍,虐也是一种进步
1.Collection和Collections区别: Collection是java的一个集合接口,集合类的顶级接口 Collections是一个包装类(工具类),不能被实例化(由于其构造函数设为私 ...
- java_集合框架
一.集合框架图 二.Collection接口 Collection中可以存储的元素间无序,可以重复的元素. Collection接口的子接口List和Set,Map不是Collecti ...
- linkedhashSet和hashSet和TreeSet的区别(转)
Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用eq ...
- HashSet和TreeSet 的区别与分析
Set是java中一个不包含重复元素的collection.更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素.正如其名称所暗示的, ...
随机推荐
- 【Linux常见问题】CentOS 6 root用户密码忘记,找回密码方法
1.Linux的root密码修改不像Windows的密码修改找回,Windows的登录密码忘记需要介入工具进行解决.CentOS6和CentOS7的密码方法也是不一样的,具体如下: 2.centos ...
- Gartner:2016 Q2全球服务器市场,中国再度成为亮点
对于IT产品供应商来说,Gartner.IDC等第三方分析机构市场调研报告无疑是一次"中考",成绩优异的论功行赏,迎接鲜花和掌声:差强人意,批斗会将是不可避免的,接下来加班加点,力 ...
- 自定义Bootstrap样式弹出框
最近做的一些功能需要用到Bootstrap,然而原来的系统并没有引入Bootstrap,为了新写的控件能够应用于老的页面,又不需要在老的页面上引入全套的Bootstrap文件决定写一个模仿Bootst ...
- 有向图强连通分量SCC(全网最好理解)
定义: 在有向图中,如果一些顶点中任意两个顶点都能互相到达(间接或直接),那么这些顶点就构成了一个强连通分量,如果一个顶点没有出度,即它不能到达其他任何顶点,那么该顶点自己就是一个强连通分量. 做题的 ...
- python(random 模块)
一.Random 模块 注意:random() 是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法. 1.random.random() 返回随机生成的一个 ...
- FastDFS文件服务器安装指南附安装包和自启动(看此篇就够了)
安装包在最后,本文为博主自己亲自安装记录 转载请注明出处 注意文字不清晰请放大看,放大看!! 安装包地址
- Programming Languages_04 Deferred Substitution
Deferred Substitution 在执行出现with时,利用"substitution",每次with的出现,它都绕着整个body置换.这一方式是由F1WAE到env再到 ...
- Eating Everything Efficiently(反向dp)
传送门 取最大值即可.用拓扑,dfs都可以实现 #include <bits/stdc++.h> using namespace std; const int maxn=500009; i ...
- HashMap面试知识点总结
主要参考 JavaGuide 和 敖丙 的文章, 其中也有参考其他的文章, 但忘记保存链接了, 文中图片也是引用别的大佬的, 请见谅. 新手上路, 若有问题, 欢迎指正. 背景 HashMap 的相关 ...
- Coursera课程笔记----C程序设计进阶----Week 5
指针(二) (Week 5) 字符串与指针 指向数组的指针 int a[10]; int *p; p = a; 指向字符串的指针 指向字符串的指针变量 char a[10]; char *p; p = ...