众所周知:List是接口,ArrayList实现了List接口。那HashSet又是什么玩意?

ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。

ArrayList底层是动态数组,HashSet底层是哈希表。

ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,

ArrayList是有序可重复,HashSet是无序不可重复。

对于 HashSet 而言,它是基于 HashMap 实现的,底层采用 HashMap 来保存元素

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;public class UseSetAppMain {public static void main(String[] args) {printCollection(addElementsToCollection(new HashSet()));/*输出class java.util.HashSet中的元素,共5个

ArrayList和HashSet相关推荐

  1. 浅谈Java语言中ArrayList和HashSet的区别

    Java语言中ArrayList和HashSet的区别 2019-04-10   13:22:49 一.基本区别 首先一起看个实例,其代码如下: package com.MrZ_baby.com; i ...

  2. Java最佳实践– Vector vs ArrayList vs HashSet

    在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将在三个最常用的Collection实现类之间进行性能比较. 为了使事情变得更现实,我们将在多线程环境下进行测试,以讨论和演示如 ...

  3. Java中如何克隆集合——ArrayList和HashSet深拷贝

    2019独角兽企业重金招聘Python工程师标准>>> 编程人员经常误用各个集合类提供的拷贝构造函数作为克隆List,Set,ArrayList,HashSet或者其他集合实现的方法 ...

  4. java hashmap 的api_JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)

    一.集合Collection 1. 集合介绍 变量:表示的内存中的一个空间,只能保存确定类型的单个数据 数组:表示的是内存中的多个连续的空间,这些空间中可以存储多个同类型的数据. 后期继续学习面向对象 ...

  5. Arraylist、HashSet去重复 treeSet排列实现方法 HashMap遍历取值

    2019独角兽企业重金招聘Python工程师标准>>> java提供的Arraylist本身不能对添加的元素进行去重,需要在添加后进行比较,如果相同就不添加 public stati ...

  6. java list api_Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)

    1. Collection集合框架 Java.util.Collection接口 |--List子接口 |--ArrayList实现类 |--LinkedList实现类 |--Vector实现类 |- ...

  7. 【从零开始的Java开发】1-5-4 ArrayList、HashSet、HashMap 概述与案例

    文章目录 集合框架的体系结构 List概述 ArrayList 案例:在List中操作String 案例:公告管理--在ArrayList中对自定义对象的操作 Set概述 案例:在Set中操作Stri ...

  8. java中HashMap、ArrayList、HashSet的存储原理及遍历方式汇总

    HashMap类 底层存储方式:1. HashMap在JDK1.7之前底层是用数组+链表的方式存储的:在JDK1.8之后底层是用数组+链表+红黑树存储的;2.HashMap里面实现了一个静态内部类En ...

  9. ArrayList、HashMap、HashSet是线程不安全的,高并发下如何解决?

    1.故障现象 :ArrayList的add()方法并没有使用synchronized所以是线程不安全的,会造成java.util.ConcurrentmodificationException(并发修 ...

最新文章

  1. 【原创】POSTGRESQL 分区表初次体验
  2. dede单独显示查到了多少条记录的方法
  3. pyinstaller打包exe程序教程推荐及需要注意的点
  4. vue 多页面多模块分模块打包 分插件安装_Vue渲染方式
  5. C#细说多线程(下)
  6. Java预科篇1-学前
  7. leetcode —— 200. 岛屿数量
  8. 欲学机器学习必先掌握Shell,AI工程师自制教程,获Reddit网友400+点赞 | PDF+视频...
  9. 云服务器怎么多人进去编辑文档,一台云服务器多人使用
  10. Ant design pro引入Echarts报错:TypeError: Cannot read property 'x_data' of undefined
  11. Conda环境与Python解释器
  12. 【activiti6】设计器的前后端集成与汉化
  13. 代码实现自动剪辑视频
  14. windows 域介绍
  15. 智能网联V2X全球发展现状以及V2X平台设计简介
  16. 使用PPT画图,取消自动选点(自动吸附点)解决方案
  17. echart 三维可视化地图_Echarts三维坐标系
  18. matlab求对数正态的均值和标准差,matlab – 从变量的均值,系数生成对数正态分布随机数...
  19. 前端架构师的YY定义
  20. 华为nova7se乐活版支持鸿蒙,华为nova7se乐活版和nova8se的详细对比参数对比

热门文章

  1. C99 calloc、malloc和realloc区别
  2. 启明云端分享|大家都知道ESP32-C3是乐鑫5月刚量产的芯片,大家都传是取代ESP8266的,目前也确实有很多客户升级应用选择替换,那Esp8266与Esp32-C3 从硬件到应用开发有哪些不同呢
  3. python27文件夹_为什么python27.dll不是python安装文件夹的一部分,而是在Windows系统文件夹中...
  4. flask jinja2 mysql_flask/jinja2 SSTI注入学习
  5. 想聊天?自己搭建个聊天机器人吧!
  6. linux系统根分区挂载出错 系统无法,用虚拟机安装linux时显示“没有定义根文件系统,请到分区菜单以修正此错误”,是什么意思,肿么弄谢谢各位...
  7. 如何在tomcat下应用部署日志_如何在kubernete集群上部署springboot应用
  8. Python之删除字符串中不需要的字符
  9. Django常用命令总结(图片)
  10. 使用OpenSSH远程管理Linux服务器