HashSet 浅析示例
* 1、继承自抽象类 AbstractSet,实现接口 Set、Cloneable、Serializable;
* 2、元素无顺序;
* 3、元素不可重复;
* 4、采用哈希算法插入数据,插入速度快;
* 5、非线程安全,轻量级;
package com.smbea.demo; import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; /**
* 1、继承自抽象类 AbstractSet,实现接口 Set、Cloneable、Serializable;
* 2、元素无顺序;
* 3、元素不可重复;
* 4、采用哈希算法插入数据,插入速度快;
* 5、非线程安全,轻量级; * @author hapday
* @date 2016年7月9日 下午8:27:16
*
*/
public class HashSetDemo {
public static void main(String[] args) {
elementUnrepeatableTest(); elementInconsecutiveTest();
} /**
* 验证【元素不可重复】
*/
public static void elementUnrepeatableTest() {
int num1 [] = new int[]{7,8,9};
int num2 [] = num1; Set<Object> set = new HashSet<Object> ();
set.add(1);
set.add(2);
set.add(3);
set.add(3);
set.add("string");
set.add(num1);
set.add(num2);
set.add("中文");
set.add("中文也不可重复");
set.add("中文也不可重复"); System.out.println("*** 元素不可重复 ***");
Iterator<Object> iterator = set.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next() + " - ");
} System.out.println("\n*** 元素不可重复(forEach) ***");
for(Object object : set){
System.out.print(object + " - ");
} System.out.println("\n*** 元素不可重复(toString()) ***");
System.out.print(set);
} /**
* 【元素无顺序】
*/
public static void elementInconsecutiveTest() {
Set<Integer> set = new HashSet<Integer> ();
for(int index = 1; index <= 100000; index++){
set.add(index); // 加入 10 万的元素
} boolean exists = false; // 是否存在:true-存在;false-不存在
int count = 0; // 存在数,多次执行,我们发现当元素的个数为 10W 时,这个值是不变的,均为 17232,这在一定程度上说明哈希算法是相对稳定的
int current = 0; // 当前元素
int previous = 0; // 上一个元素
Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){
current = iterator.next();
if(current <= previous){
exists = true;
count++;
} previous = current;
} System.out.println("\n*** 元素无顺序 ***");
System.out.print("是否无顺序:" + exists + ", 可能的顺序数为:" + count);
}
}
HashSet 浅析示例的更多相关文章
- Java集合框架之HashSet浅析
Java集合框架之HashSet浅析 一.HashSet综述: 1.1HashSet简介 位于java.util包下的HashSet是Java集合框架的重要成员,它在jdk1.8中定义如下: publ ...
- 了解C#中的HashSet与示例
在C#中引入HashSet 在.NET框架中,有几个类可用于执行这些操作.一些课程如下: 列表 字典 哈希集 队列 集合 在C#编程中,像ArrayList,List这样的集合,只需添加其中的值,而不 ...
- 关于HashMap,HashTable,HashSet浅析
首先,最重要的,HashMap 作为一个我们使用非常多的集合.最常被大家认知的是,它是一个key-value形式存储数据的数据结构,可以实现快速的存,取操作. 关于HashMap的源码,我们截取一 ...
- LinkedList 浅析示例
package com.smbea.demo; import java.util.Iterator; import java.util.LinkedList; import java.util.Lis ...
- ArrayList 浅析示例
package com.smbea.demo; import java.util.ArrayList; import java.util.Iterator; import java.util.List ...
- 【Java入门提高篇】Day26 Java容器类详解(八)HashSet源码分析
前面花了好几篇的篇幅把HashMap里里外外说了个遍,大家可能对于源码分析篇已经讳莫如深了.别慌别慌,这一篇来说说集合框架里最偷懒的一个家伙——HashSet,为什么说它是最偷懒的呢,先留个悬念,看完 ...
- 深入分析——HashSet是否真的无序?(JDK8)
HashSet 是否无序 (一) 问题起因: <Core Java Volume I-Fundamentals>中对HashSet的描述是这样的: HashSet:一种没有重复元素的无序集 ...
- C#LeetCode刷题之#705-设计哈希集合(Design HashSet)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4114 访问. 不使用任何内建的哈希表库设计一个哈希集合 具体地说 ...
- 黑马程序员——【Java基础】——集合框架
---------- android培训.java培训.期待与您交流! ---------- 一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是 ...
随机推荐
- C# 对象锁
现在有一种场景,服务端将一个任务派发给10个客户端执行,所有客户端执行完后,整个任务才算执行完. 每个客户端执行完后,通过http发送一个完成的消息给服务端,服务端发送邮件通知给用户. 当10个客户端 ...
- 附录D 安装ZooKeeper
D.1 安装ZooKeeper D.1.1 下载ZooKeeper ZooKeeper是Apache基金会的一个开源.分布式应用程序协调服务,是Google的Chubby一个开源的实现.它是 ...
- Cookbook of QUnit
本篇文章是QUnit的简介,可以作为很好的入门教程.文章原址 介绍 自动化测试时软件开发过程中必不可少的一部分,而单元测试则是自动化测试的最为基本的一块,软件的每一个组件, 每一个功能单元都需要经过不 ...
- 一种C#生成符合Java规则的二进制文件方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.一个项目中的真实问题 实际项目中,本想通过C#制作小工具生成SHP ...
- git安装和初次使用
为了知道某人安装git,我也是重装啊. 1.下载git并安装 2.打开我的电脑,右键属性,选择高级设置,打开环境变量设置: 3.键盘输入窗口键+r,或者点击开始->运行 输入cmd 在新打开的命 ...
- react入门(5)
对前面四篇内容进行简单的回顾: react入门(1):jsx,组件,css写法 react入门(2):事件,this.props.children,props,...other,map循环 react ...
- 《C#并发编程经典实例》笔记
1.前言 2.开宗明义 3.开发原则和要点 (1)并发编程概述 (2)异步编程基础 (3)并行开发的基础 (4)测试技巧 (5)集合 (6)函数式OOP (7)同步 1.前言 最近趁着项目的一段平稳期 ...
- 微博关注/QQ信息发送
<!doctype html> <html lang="en" xmlns:wb=“http://open.weibo.com/wb”> <head& ...
- .NET 对象生命周期
GC 垃圾回收 .NET Framework 的垃圾回收器管理应用程序的内存分配和释放.每次您使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存.只要托管堆中有地址空间可用,运 ...
- 简析.NET Core 以及与 .NET Framework的关系
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...