参考链接:

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. python用pandas遍历csv文件

    import pandas as pd df = pd.read_csv('a.csv') for index, row in df.iterrows(): x, y = row['X'], row[ ...

  2. python实现从文件夹随机拷贝出指定数量文件到目标文件夹

    为了方便倒腾数据,功能如题,该脚本和操作目录在同一根目录 实际运行时要手动修改程序中:cpfile_rand('img', 'outfile', 10) # 操作目录,输出目录,输出数量 import ...

  3. dart快速入门教程 (3)

    3.运算符 运算符本质上就是代表某运算规则的符号,例如: + ,这个符号,代表着数学运算里面的加法,按照加法法则进行运算即可,同理,学习运算符就是掌握这些规则而已 3.1.算术运算符 算术运算符主要包 ...

  4. js语法基础入门(5.2)

    5.2.循环结构 当一段代码被重复调用多次的时候,可以用循环结构来实现,就像第一个实例中出现的场景一样,需要重复询问对方是否有空,这样就可以使用循环结构来搞定 5.2.1.for循环语句 //语法结构 ...

  5. 三.cmdb

    一.服务器管理: https://github.com/rfjer/autoAdmin/tree/master/apps/servers 一服务器信息收集方式: 1.物理服务器 跑脚本传(bash/a ...

  6. 宿主机ping不通虚拟机,虚拟机能ping通宿主机问题

    打开虚拟机管理器,点开设置=>网络,网络选的是NAT,所以宿主机不能直接ping能虚拟机!!! 问题描述 查看虚拟机ip,  #ifconfig如下图: 宿主机ping虚拟机ip,无法通信,如下 ...

  7. tkinter的三种几何布局管理类

    1.pack() 主要采用块的方式组织子组件 如下: import tkinter root=tkinter.Tk() #创建窗口对象 label=tkinter.Label(root,text='h ...

  8. 简单几步让CentOS系统时间同步

    在使用CentOS系统的时候,我们可能会遇到时间不准的问题,那我们如何解决这个我问题呢,下面就来教大家一个CentOS系统时间同步的方法,希望大家可以解决自己所存在的疑问. CentOS系统时间同步的 ...

  9. 你真的了解CSS继承吗?看完必跪

    也许你瞧不起以前的 css ,但是你不该再轻视眼下的 css .近年来 css 的变量系统已逐步得到各大浏览器厂商支持,自定义选择器等强势袭来,嵌套系统/模块系统也在路上…为了更好的掌握 css 这门 ...

  10. 为什么Spring Security看不见登录失败或者注销的提示

    有很多人在利用Spring Security进行角色权限设计开发时,一般发现正常登录时没问题,但是注销.或者用户名时,直接就回到登录页面了,在登录页面上看不见任何提示信息,如“用户名/密码有误”或“注 ...