Java中Set表示一个不包括重复元素的集合,它有HashSet,LinkedHashSet,TreeeSet三种常用实现。

HashSet是Set的最常用实现,它常被用来清除重复元素。

例程:

        Set<String> filterSet=new HashSet<String>();

        filterSet.add("b");
filterSet.add("b");
filterSet.add("c");
filterSet.add("c");
filterSet.add("a");
filterSet.add("a");
filterSet.add("aa");
filterSet.add("1");
filterSet.add("3");
filterSet.add("s"); for(String str:filterSet) {
System.out.println(str);
}

输出:

aa
a
1
b
c
3
s

从上面我们可以看出,HashSet能清除掉重复元素,但不能保持插入顺序,也不会自动排序。

LinkedHashSet不但能清除重复,而且能保持元素的插入顺序。

        Set<String> filterSortSet=new LinkedHashSet<String>();
filterSortSet.add("d");
filterSortSet.add("b");
filterSortSet.add("c");
filterSortSet.add("c");
filterSortSet.add("a");
filterSortSet.add("a");
filterSortSet.add("1");
filterSortSet.add("1");
filterSortSet.add("3");
filterSortSet.add("s"); for(String str:filterSortSet) {
System.out.println(str);
}

输出:

d
b
c
a
1
3
s

TreeSet也能清除重复,且内部自动排序。

例程:

        Set<String> filterSortSet=new TreeSet<String>();
filterSortSet.add("d");
filterSortSet.add("b");
filterSortSet.add("c");
filterSortSet.add("c");
filterSortSet.add("a");
filterSortSet.add("a");
filterSortSet.add("1");
filterSortSet.add("1");
filterSortSet.add("3");
filterSortSet.add("s"); for(String str:filterSortSet) {
System.out.println(str);
}

输出:

1
3
a
b
c
d
s

--END-- 2019-12-24 09:38

[Java数据结构]HashSet,LinkedHashSet,TreeeSet的更多相关文章

  1. java集合框架之几种set(HashSet LinkedHashSet TreeSet )

    参考http://how2j.cn/k/collection/collection-sets/691.html#nowhere HashSet LinkedHashSet TreeSet HashSe ...

  2. C++中的set和java的hashset有何区别?

    以前对C++的STL容器烂熟于心,两年没碰过C++了,现在已经很生疏了.工作原因转战java,对java的容器不甚了解,特别是每看到一种容器,不由自主地拿起和C++对比.C++中的set和java的h ...

  3. Java 集合框架 LinkedHashSet 和 LinkedHashMap 源码剖析

    总体介绍 如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的LinkedHashSet和LinkedHashMap其实也是一回事. ...

  4. JDK1.8源码(八)——java.util.HashSet 类

    在上一篇博客,我们介绍了 Map 集合的一种典型实现 HashMap ,在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成,相对于早期版本的 JDK HashMap 实现,新增了红黑树 ...

  5. (6)Java数据结构-- 转:JAVA常用数据结构及原理分析

    JAVA常用数据结构及原理分析  http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balab ...

  6. java——数据结构

    底层数据结构: 数组 ArrayList 链表 LinkedList 应用数据结构: 二分搜索树 BST 最大堆/最小堆 MaxHeap/MinHeap 线段树 SegmentTree 字典树 Tri ...

  7. java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重

    package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...

  8. java数据结构4--集合Set

    Set接口 Set接口用来表示:一个不包含“重复元素”的集合Set接口中并没有定义特殊的方法,其方法多数都和Collection接口相同. 重复元素的理解:通常理解:拥有相同成员变量的对象称为相同的对 ...

  9. Java Set HashSet

    import java.util.HashSet; import java.util.Set; /** Set存储特点:数据无序.不可重复 Set接口的实现类: HashSet:Set接口的主要实现类 ...

随机推荐

  1. 使用Prometheus监控Golang服务-基于YoyoGo框架

    Prometheus Prometheus是一个非常棒的工具,结合grafana能够让我在不写代码,或者少写代码的情况下搭建一套有效的监控体系.这里介绍一下Prometheus监控golang程序的方 ...

  2. linux 命令行安装谷歌浏览器

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 2. yum install -y ls ...

  3. storcli 命令(更新Ing)

    help [root@centos7]# storcli -h Storage Command Line Tool Ver 007.0606.0000.0000 Mar , (c)Copyright ...

  4. Java callback回调

    package com.callback; public interface CSCallBack { public void process(String status); } package co ...

  5. 逃离CSDN -慕舲的黑夜-第三期

    来时,是朋友推荐查资料,后来看到CSDN的UI,好华丽高大上,也读了CSDN首页推荐的一些文章,加入CSDN. 可是后来随着博客园,蓝奏云,w3c菜鸟教程,等平台的出现,CSDN越来越令人心寒

  6. SpringMVC 注解方式进行配置页面跳转

    @ 目录 修改IndexController 修改springmvc-servlet.xml 效果 修改IndexController 在类前面加上@Controller 表示该类是一个控制器 在方法 ...

  7. 关于Java中for循环的i++和++i区别

    我们应该都知道i++和++i的区别是: ++i是先执行 i = i +1 再使用 i 的值,而 i++ 是先使用 i 的值再执行 i = i + 1: for循环的执行顺序如下: for(a;b;c) ...

  8. python基础 Day8

    python Day8 文件操作的识 利用python代码写一个脚本操作文件的过程 文件的路径:path 打开方式:读,写,追加,读写,写读 编码方式:utf-8,gbk,gb2312 简单文件读取( ...

  9. cenos 7 mysql

    CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载 # wget http://dev.mysql.com/get/mysql-community- ...

  10. MPI自定义数据类型

    自定义数据类型 1.数据类型辅助函数 MPI_Type_commit int MPI_Type_commit( MPI_Datatype *datatype ); 在通信中使用数据类型对象之前,必须提 ...