hasset java_java HashSet的使用

今天在写代码时想要使用HashSet,由于之前并不了解,就在网上查了一下原理及使用方法。

HashSet原理

该类实现了Set接口,HashSet中不允许元素重复,不保证集合中元素的顺序,元素可为null,但最多只能一个。对于 HashSet 而言,HashSet继承自AbstractSet,它是基于 HashMap 实现的,HashSet 底层使用HashMap来保存所有元素。因此HashSet的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成。

常用方法

构造方法:

默认构造器:

publicHashSet() {

map= new HashMap<>();

}

将传入的集合添加到HashSet的构造器

public HashSet(Collection< ? extends E>c) {

map= new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));

addAll(c);

}

明确初始容量和装载因子的构造器

public HashSet(int initialCapacity, floatloadFactor) {

map= new HashMap<>(initialCapacity, loadFactor)

}

仅明确初始容量的构造器(装载因子默认0.75

public HashSet(intinitialCapacity) {

map= new HashMap<>(initialCapacity);

}

API中几个常用方法:

size() :返回值为int,返回此 set 中的元素的数量(set 的容量)。

isEmpty():返回值为boolean, 如果此 set 不包含任何元素,则返回 true。

add(E e):返回值为boolean,如果此 set 中尚未包含指定元素,则添加指定元素。

iterator():返回值为Iterator, 返回对此 set 中元素进行迭代的迭代器。

remove(Object o):返回值为boolean,如果指定元素存在于此 set 中,则将其移除。

contains(Object o):返回值为boolean,如果此 set 包含指定元素,则返回 true。

clear():无返回值, 从此 set 中移除所有元素。

clone():返回值为Object,返回此HashSet的浅表副本,而并没有复制元素本身。

HashSet的简单使用

创建:

packagecom.cmq.common;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.List;importjava.util.Set;importcom.cmq.entity.Shoes;importcom.cmq.entity.Manager;/***@authorchenmeiqi

*@version2020年2月10日 下午3:33:08

*@公共属性类*/

public classConstants {//使用List模拟数据库,创建管理员List对象//public static List mgrlist = new ArrayList<>();

public static Set hashsetShoes= new HashSet<>();

}

添加:

if (idyz(Integer.parseInt(s[0]))) {if (Util.isEmpty(s[1])) {if (s[6].equals("1") || s[6].equals("2") || s[6].equals("3") || s[6].equals("4")) {

shoe.setId(Integer.parseInt(s[0]));

shoe.setName(s[1]);

shoe.setSign(Integer.parseInt(s[6]));

shoe.setImage(s[2]);

shoe.setPrice(Double.parseDouble(s[3]));

shoe.setPub_address(s[4]);

shoe.setPub_date(Util.StringToDate(s[5]));//保存set集合中

Constants.hashsetShoes.add(book);

}else{

System.out.println("*******类别输入有误!****");

}

}else{

System.out.println("*******名称不能为空!*****");

}

}

删除:

for(Shoesshoes:Constants.hashsetShoes) {if(shoes.getId() == id_input) {//从hashsetShoes中查询出id为传入的id的用户

Constants.hashsetBook.remove(shoes);//删除该商品

break;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle tips

存储过程无法编译和抛掉&#xff01;&#xff01;我在一个项目组中与同事一起开发存储过程&#xff0c;碰到过其他人在调试存储过程时&#xff0c;我无法编译同一个存储过程的问题。但是&#xff0c;现在我使用pl/sql dev将其他的进程都杀掉后&#xff0d;&#xff0d;包括在调…

TCP拥塞控制机制

为了防止网络的拥塞现象&#xff0c;TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成&#xff0c;后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”…

java中类似sort_java中的Sort函数,你值得看

基于C语言中的sort如此这么方便&#xff0c;自然而然&#xff0c;java中也有类似C的sort函数。1.普通数组&#xff1a;Arrays.sort(数组名&#xff0c;开始位置&#xff0c;结束位置)。2.类中属性排序&#xff1a;模板&#xff1a;class A{int n;}class cmp implement Comparat…

明天启程去北京:)

去北京参加为期5天的微软sps培训&#xff0c;公司穷呀&#xff0c;所以只能做火车去了&#xff0c;17日下午到达北京&#xff0c;18日&#xff0d;22日5天培训&#xff0c;23日到青岛&#xff0c;呆两三天然后26日下午回家&#xff1a;&#xff09;有北京和青岛的朋友可以联系我…

多线程java 银行_Java 多线程 之 银行ATM实例

package com.thread;import java.util.Scanner;public class TestBank {public static void main(String[] args) {Bank bank new Bank();Thread lingming new Thread(bank, "李明");Thread wangtao new Thread(bank, "王涛");lingming.start();try {Th…

CSDN登陆校验码模式识别程序

下班后&#xff0c;吃饭前快速写了这么一个东西&#xff0c;以证明图片验证码的脆弱。防君子&#xff0c;不防XX。本来应该使用HTTP协议直接从CSDN的登陆页面DOWN校验图片的&#xff0c;因为时间仓促&#xff0c;所以没有仔细设计。只是做一个示例&#xff0c;还要麻烦大家手工…

C语言中整形数组、字符数组、字符串的区别

一、 第一 整型数组的存放&#xff0c;数组最后是不加\0的&#xff0c;字符串会自动加上&#xff0c;因此存放字符的时候数组的大小要比实际字符的多一个 第二 整型数组 每一个单元是4个字节的&#xff0c;字符串是一个一个字符存放的&#xff0c;每个字符占一个 二&#xff0c…

java hibernate 表关联_Hibernate多表关联

一、多对一进行关联(多个学生对应同一间宿舍)---学生是主体&#xff0c;宿舍是附体&#xff0c;关联关系在主体学生中设置&#xff0c;在学生类中设置宿舍类&#xff0c;由于宿舍类只有一个可以直接用类来设置,在映射学生类(User)中包含宿舍这个类(Room),在映射配置文件(User.h…

getchar、putchar、puts、gets

getchar(字符) 输入获取一个字符 putchar(字符) 输出控制台一个字符 scanf&#xff08;&#xff09;格式化输入 printf&#xff08;&#xff09; 格式化输出 gets(arr) 输入一个字符串给已经声明的数组arr puts(字符串或者字符数组名&#xff09;输出一个字符串 转载于:https…

关于异性朋友

听到别人在问一个问题&#xff1a;“可是你在大学里又有几个很要好的女性朋友&#xff1f;”   想到自己&#xff0c;却是一个没有。奇怪啊&#xff0c;我虽然木讷&#xff0c;但还不到白痴的地步&#xff0c;怎么会一个没有呢&#xff1f;思讨一下&#xff0c;明白了&#…

java全文检索工具_全文检索工具elasticsearch:第三章: Java程序中的应用

搭建模块创建二个项目gmall-list-service的appliction.properties:server.port8073spring.datasource.urljdbc:mysql://localhost:3306/gmall?characterEncodingUTF-8spring.datasource.usernamerootspring.datasource.passwordrootmybatis.configuration.map-underscore-to-c…

win10 多用户登陆

win10 多用户登陆 一般的直接下载就可以用了。 核心参考链接github 支持 1903 支持最新版本可以需要这个1903支持项参考页面 上述页面的下载文件页面1903支持页面 关于上述链接下载文件readme的解释 RDP Wrapper Library Updater --------------------------- <Add support …

DNN(DotNetNuke)注册用户终于突破10万人了,其3.0也终于跳票了...

是的&#xff0c;尽管我很不愿意&#xff0c;但的确是跳票了&#xff0c;或许跳票是软件开发的惯例了。据说会在圣诞节那天发布&#xff0c;也可能是月底&#xff0c;没有人知道&#xff1a;http://www.asp.net/Forums/ShowPost.aspx?tabindex1&PostID734458 不过&#xf…

java虚拟机MyEclipse_Eclipse和MyEclipse运行环境java虚拟机jvm设置,自己设置jre

Eclipse运行环境java虚拟机jvm设置&#xff0c;自己设置jre浅谈Eclipse寻找JVM(JRE)的顺序机制Eclipse也是一个普通的Java程序&#xff0c;因此必须有一个JRE做为运行环境。如果你的机器上没有安装任何JRE(或者JDK&#xff0c;本文不做二者的区分)&#xff0c;那么点击eclipse.…

初探机器学习之使用百度EasyDL定制化模型

一、Why 定制化模型 一般来说&#xff0c;各大云服务厂商只会提供一些最常见通用的AI服务&#xff0c;针对具体场景的AI应用则需要在云服务厂商提供的服务之上进行定制。例如&#xff0c;通常的图像识别只能做到分析照片的主题内容&#xff0c;而我的需求是给定指定场景的图片&…

Microsoft SQL Server Desktop Engine安装过程中遇到的问题(2)

今天下午没课&#xff0c;又在玩电脑了&#xff0c;想起昨天没解决的问题&#xff0c;心里有点不爽&#xff0c;遇到问题就要解决嘛^_^。 我把昨天装的study实例卸载了&#xff0c;仔细研究了一下自述文件&#xff0c;按照里面的说明&#xff0c;我在C盘根目录新建了一个名为 M…

java面向对象基础代码_JAVA基础知识点之Java面向对象

特点:1:将复杂的事情简单化。2:面向对象将以前的过程中的执行者&#xff0c;变成了指挥者。3:面向对象这种思想是符合现在人们思考习惯的一种思想。过程和对象在我们的程序中是如何体现的呢&#xff1f;过程其实就是函数&#xff1b;对象是将函数等一些内容进行了封装。匿名对象…

OCP-052考试题库汇总(4)-CUUG内部解答版

Which four statements are true about truncating a table? A)Any insert triggers for the table will be executed. B)Any of the table’s indexes are also truncated. C)Any delete triggers for the table will be executed. D)All table storage can be retained. E)O…

mysql innodb4大特征_MYSQL中InnoDB特性浅谈

许久没有更新博客,上周末放假把网易大牛姜sir的著作MYSQL技术内幕InnoDB存储引擎又翻阅了一番,对当前工作的InnoDB特性有了一些新的认识,下面谈谈自己的读后感.1. InnoDB的体系架构由一系列后台线程,内存池和文件组成,这点与其他DB有相似之处. 在内存中划分了一块区域,即缓冲池…

微享:快速分享网页到新浪微博

分享到新浪微博 *:博客园的编辑程序会自动给javascript的链接加上前缀&#xff0c;使得链接错误。版本&#xff1a;&#xff11;.0 简介&#xff1a; 书签栏工具&#xff0c;javascript代码&#xff0c;用于分享网页内容到新浪微博。 安装&#xff1a;Firefox&#xff0c;safa…