参考链接:

HOW2J.CN

HashSet简单讲解

HashSet

HashSet与C++STL中Set基本类似,具有的特点便是:

  1. 集合中元素不可重复
  2. 集合中元素顺序 ≠ 插入顺序
常用方法 功能
add 向集合中添加元素
clear 清空集合
remove 删除集合中指定元素
contains 查看是否包含某个元素
size 集合中元素的数量
package blog;

import java.util.HashSet;

public class Main {
public static void main(String[] args) {
HashSet<Integer> set = new HashSet<Integer>();
int[] data = {1,2,3,2,1,2,4,6,3,1,3,8,9,4,23,2};
//筛除data中的重复元素
for(int i = 0; i < data.length; i++) {
set.add(data[i]);
}
//遍历集合
for(Integer i : set) {
System.out.print(i+" ");
}
}
}

运行结果如下(顺序并不是加入集合的顺序):

1 2 3 4 6 23 8 9

LinkedHashSet 与 TreeSet

LinkedHashSet、TreeSet操作与HashSet基本无二,但是LinkedHashSet使得集合中的元素按照插入的顺序排列,而TreeSet使得集合中的元素按照大小顺序排列

package blog;

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.TreeSet; public class Main {
public static void main(String[] args) {
HashSet<Integer> set = new HashSet<Integer>();
LinkedHashSet<Integer> linkSet = new LinkedHashSet<Integer>();
TreeSet<Integer> treeSet = new TreeSet<Integer>(); int[] data = {1,2,3,2,1,2,4,6,3,1,3,8,9,4,23,2,14,16,15};
//筛除data中的重复元素
for(int i = 0; i < data.length; i++) {
int temp = data[i];
set.add(temp);
linkSet.add(temp);
treeSet.add(temp);
}
//遍历集合
for(Integer i : set) {
System.out.print(i+" ");
}
System.out.println();
for(Integer i : linkSet) {
System.out.print(i+" ");
}
System.out.println();
for(Integer i : treeSet) {
System.out.print(i+" ");
}
}
}

三个集合的遍历结果如下(从上到下依次是HashSet、LinkedSet、TreeSet):

16 1 2 3 4 6 23 8 9 14 15

1 2 3 4 6 8 9 23 14 16 15

1 2 3 4 6 8 9 14 15 16 23

JAVA集合三:几种Set框架的更多相关文章

  1. Java——集合系列(1)框架概述

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 集合框架概述 Jav ...

  2. Java 集合系列01之 总体框架

      Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set ...

  3. 【转】Java 集合系列01之 总体框架

    Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...

  4. Java集合总结之Collection整体框架

    前段时间一直在忙一个物联网的项目,所以Java的学习一直搁置,从今天开始继续学习!望大家多提宝贵意见! java.util包中包含了一些在Java 2中新增加的最令人兴奋的增强功能:类集.一个类集(c ...

  5. Java集合(三)--Collection、Collections和Arrays

    Collection: Collection是集合类的顶级接口,提供了对集合对象进行基本操作的通用接口方法.Collection接口的意义是为各种具体的集合提供了最大化 的统一操作方式,其直接继承接口 ...

  6. 【由浅入深理解java集合】(一)——集合框架 Collction、Map

    本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. ...

  7. Java集合框架相关知识整理

    1.常见的集合有哪些? Collection接口和Map接口是所有集合框架的父接口    Collection接口的子接口包括:Set接口和List接口    Map接口的实现类主要有:HashMap ...

  8. Java集合源码学习(三)LinkedList分析

    前面学习了ArrayList的源码,数组是顺序存储结构,存储区间是连续的,占用内存严重,故空间复杂度很大.但数组的二分查找时间复杂度小,为O(1),数组的特点是寻址容易,插入和删除困难.今天学习另外的 ...

  9. Java集合源码学习(三)LinkedList

    前面学习了ArrayList的源码,数组是顺序存储结构,存储区间是连续的,占用内存严重,故空间复杂度很大.但数组的二分查找时间复杂度小,为O(1),数组的特点是寻址容易,插入和删除困难.今天学习另外的 ...

随机推荐

  1. Java 多线程基础(十)interrupt()和线程终止方式

    Java 多线程基础(十)interrupt()和线程终止方式 一.interrupt() 介绍 interrupt() 定义在 Thread 类中,作用是中断本线程. 本线程中断自己是被允许的:其它 ...

  2. Linux上的Systemctl命令

    LinuxSystemctl是一个系统管理守护进程.工具和库的集合,用于取代System V.service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器.通过Syste ...

  3. elasticsearch 之 深入探秘type底层数据结构

    1.理论知识 type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立.分词器.field的value,在底层的lucene中建立索引 ...

  4. web安全中的session攻击

    运行着个简单的demo后,打开login.jsp,使用firebug或chrome会发现,即使没有登录,我们也会有一个JSESSIONID,这是由服务器端在会话开始是通过set-cookie来设置的匿 ...

  5. ECSHOP 2.5.1 二次开发文档【文件结构说明和数据库表分析】

    ecshop文件架构说明 /* ECShop 2.5.1 的结构图及各文件相应功能介绍 ECShop2.5.1_Beta upload 的目录 ┣ activity.php 活动列表 ┣ affich ...

  6. Java 将PDF/XPS转为Word/html /SVG/PS/PCL/PNG、PDF和XPS互转(基于Spire.Cloud.SDK for Java)

    Spire.Cloud.SDK for Java提供了接口PdfConvertApi通过convert()方法将PDF文档以及XPS文档转为指定文档格式,如转PDF为Word(支持Docx.Doc). ...

  7. Spring Boot Web应用开发 CORS 跨域请求支持

    一.Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等 CORS与JSONP相比 1. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. 2. 使用C ...

  8. 正确卸载vs2015及以前版本方式

    官网工具:https://github.com/Microsoft/VisualStudioUninstaller/releases 亲自测试过,很好用. (完)

  9. sharepoint 2010项目中,ashx页面获取SPContext.Current 为null的原因和解决方法

    //错误的写法 public void ProcessRequest(HttpContext context) { SPSecurity.RunWithElevatedPrivileges(deleg ...

  10. Oracle Solaris 10图文安装

    文章目录 1. 虚拟机软件 2. solaris 10镜像 3. 安装OS 4. 允许远程使用root用户登录SSH 5. bash配置 5.1. 修改bash 5.2. 修改提示符 6. CRT连接 ...