概念首先,我们看看Set集合。

(01) Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。

(02) AbstractSet 是一个抽象类,它继承于AbstractCollection,AbstractCollection实现了Set中的绝大部分函数,为Set的实现类提供了便利。

(03) HastSet 和 TreeSet 是Set的两个实现类。

HashSet依赖于HashMap,它实际上是通过HashMap实现的。HashSet中的元素是无序的。

TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。TreeSet中的元素是有序的。

eg:下面我们以遍历违例来看看set集合的利用:

package com.sort;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;

/**

* 一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,

* @author Owner

*

*/

public class SetTest2 {

public static void main(String[] args) {

Set set = new HashSet();

set.add("a");

set.add("b");

set.add("c");

set.add("d");

set.add("e");

set.add("e");//不能放入重复数据

/**

* 遍历方法一,迭代遍历

*/

for(Iterator iterator = set.iterator();iterator.hasNext();){

System.out.print(iterator.next()+" ");

}

System.out.println();

System.out.println("********************");

/**

* for增强循环遍历

*/

for(String value : set){

System.out.print(value+" ");

}

}

}

注意:这里Set集合中放入的是String类型,假如我们放入一个自己定义的类实例的时候,比如Person类实例,这时候我们要自己重新hashcode和equal方法,用自己的关键字段来重写,因为当使用HashSet时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的hash code值是否与增加的对象的hash code值一致;如果不一致,直接加进去;如果一致,再进行equals方法的比较,equals方法如果返回true,表示对象已经加进去了,就不会再增加新的对象,否则加进去。

java集合set的使用_浅析Java中的set集合类型及其接口的用法相关推荐

  1. java 对象的定义是_浅析Java编程中类和对象的定义

    1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么事对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于类与对象的描述:类是对象的模版,对 ...

  2. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

  3. java程序运行5步骤_浅析Java程序的执行过程

    一 .jdk内容概述 当安装好jdk后(本示例jdk版本为11.0.1,不同版本,目录有细微差别,但bin目录包含的exe是一样的),打开bin目录,有两个重要的exe文件:javac.exe(编译器 ...

  4. java线程 创建与启动_浅析Java中线程的创建和启动

    前言 线程是一个程序内部的顺序控制流.cpu实际上在一个时间点上,只执行一个.只不过我们把cup分成了多个时间片,由于速度很快,我们看起来像是多个线程.就像你的时间分成几片,这样整体看来做事情有规律, ...

  5. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  6. java内存模型浅析_浅析java内存模型

    原标题:浅析java内存模型 Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的.Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型--又称为Java内存模型 ...

  7. java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...

    java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...

  8. java gc回收堆还是栈_浅析JAVA的垃圾回收机制(GC)

    1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制. 注意:垃圾回 ...

  9. java list 前100个_实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

最新文章

  1. CSS揭秘之《背景图案》
  2. 科大星云诗社动态20210221
  3. PyTorch框架学习十一——网络层权值初始化
  4. 放心了!邮政、顺丰和京东基本全部复工
  5. 一代上网人的记忆!百度浏览器将不再更新
  6. 61组第二次团队作业
  7. 腾讯云首次披露云原生智能数据湖全景图,数据湖之争再起波澜
  8. EMNLP2021 | 实体关系抽取新SoTA - 对NER和RE任务进行联合编码
  9. golangd 报错信息梳理
  10. php去除空格函数,php如何清除空格
  11. 信息安全-保研面试经历总结
  12. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句...
  13. 计算机视觉(三)图像拼接
  14. 【江枫】lvm2与powerpath的Found duplicate PV问题
  15. SQL 获取年度第几周
  16. 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】
  17. 关于Ubuntu与Debian的关系,了解!
  18. 涛思数据荣登“创业邦100未来独角兽榜单”“2021 AIoT新维奖行业先锋榜”
  19. 质量工程师可以考什么含金量最高的证?
  20. Volumetric Cloudscapes(一):理论

热门文章

  1. Java singleton初始化顺序研究
  2. SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
  3. 关于SAP CRM Organization Unit组织结构单元自动决定的一些调试
  4. SAP云平台,区块链,超级账本和智能合约
  5. python average函数详解_python 函数详解
  6. matlab中欠定方程组超定方程组_七年级下册第10章:认识二元一次方程组(1课时)...
  7. c语言串口通信_stm32 串口通信收发说明
  8. python csv模块追加列,使用Python在CSV上添加新列
  9. php socket传递cookie,PHP Websocket在测试中验证用户(传递会话cookie)
  10. php面向对象公共类,PHP面向对象(一):类与类的实例化