java map collection_java 集合----Map、Collection
接口:红色;实现类:黑色字体
一、Collection集合
Collection
|_____Set(HashSet)
| |_____SortedSet(TreeSet)
|_____List(ArrayList,LinkedList,Vector )
Collection:集合层次中的根接口,JDK没有提供这个接口的实现类。
List: 有序(按照放入的顺序)、可以重复、有下标。
Set:无序、不可以重复、无下标。
SortedSet:是Set接口的子接口,SortedSet中的元素是有序的(按字母升序)。
通过 Comparable接口的compareTo方法,实现元素是有序的。放入的元素都必须实现 Comparable 接口(或者被指定的Comparator 所接受)。
List接口的实现类的区别:
ArrayList :本质上是一个数组。线程不安全。查询(get/set)快,增删(add/remove)慢。
LinkedList: 本质上是一个双向链表。线程不安全。查询(get/set)慢,增删(add/remove)快。
Vector :和ArrayList几乎是完全相同的,唯一的区别在于Vector是同步类(synchronized),是线程安全的。
二、Map集合
Map(HashMap,Hashtable)
|_____SortedMap(TreeMap)
Map:存储的是key-value对,不能包含重复的key,可以有重复的value。
SortedMap:Map的子接口SortedMap是一个按升序排列key的Map。
HashMap、Hashtable和TreeMap的区别
HashMap :线程不安全。key和value都可以是null。元素是无序的。底层是哈希表数据结构。
Hashtable:线程安全。key和value都不可以是null。元素是无序的。底层是哈希表数据结构。
TreeMap:线程不安全。key和value都不可以是null。元素是有序的(按字母升序)。底层是二叉树数据结构。
三、Map的key、Set的值如何实现不重复
Map放相同的key,之后的覆盖之前的
Map map=new HashMap();
map.put(“name”,”张三”);
map.put(“name”,”王五”);------有效,覆盖之前的
Set放相同的元素时,第一个是有效的,之后的不会被放入
Set set=new HashSet();
set.add(“111”);---有效
set.add(“222”);----判断已有,不会放入
1、HashMap的put与HashSet的add
由于 HashSet 的 add() 方法添加集合元素时实际上转变为调用 HashMap 的 put() 方法来添加 key-value 对。HashMap 的 put() 方法首先调用.hashCode() 判断返回值相等,如果返回值相等则再通过 equals 比较也返回 true,最终认为key对象是相等的已经在HashMap中存在了。
2、TreeMap的put与TreeSet的add
TreeMap中调用put方法添加键值时,调用对象的它的 compareTo(或 compare)方法对所有键进行比较,此方法饭回0,则认为两个键就是相等的。
TreeSet添加元素的时候,调用compareTo或compare方法来定位元素的位置,也就是返回compareTo或compare返回0则认为是同一个位置的元素,即相同元素
java map collection_java 集合----Map、Collection相关推荐
- Java中的集合(Collection,Map)
集合类体系结构 Collection集合 Collection集合概述 是单例集合的顶层接口,它表示一组对象,这些对象也被成为Collection元素 JDK不提供此接口的任何直接实现,它提供更具体的 ...
- java 双列集合Map 万字详解
目录 一.前言 二.概述 三.特点 四.常用方法 1. V put(K key, V value) : Δ代码演示 : 2. V get(Object key) : Δ代码演示 : 3. V remo ...
- Java基础进阶集合-map集合
1.Map和Collection没有继承关系. 2.Map集合以key和value的方式存储数据:键值对 key和value都是引用数据类型. key和value都是存储对象的内存地址. key起到主 ...
- 2021年JAVA面试~初识集合Map(一)
前言 有一天James独自去肯德基买饮料,身后排了个小男孩, 他转过身来对小男孩说:"小朋友,第二杯半价,这个优惠让给你吧,只要一半的钱哦. ""呵呵", 小男 ...
- Java基础(集合框架——Collection、List、Set、泛型)
为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多 个对象的操作,就对对象进行存储,集合就是存储对象常用的一 种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储 ...
- 2021年JAVA面试~初识集合Map(二)
前言 各位靓仔好呀,我们接着讲讲Map集合, 我们知道HashMap是线程不安全的及不安全在哪里 今天主要介绍线程安全的Map 上一篇文章地址:https://blog.csdn.net/u01335 ...
- [Java复习02] 集合框架 Collection
Q1 Collection java的集合以及集合之间的继承关系? 数组和链表的区别? 固定长度,连续内存,不能扩展,随机访问快,插入删除慢.链表相反 List, Set, Map的区别? List, ...
- 【Java笔记】集合(Collection接口)的使用
面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.使用 Array 存储对象方面具有一些弊端,而 Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中 ...
- Java、Set、Map集合框架知识大全,收藏备用
前言 Java集合框架的知识在Java基础阶段是极其重要的,我平时使用List.Set和Map集合时经常出错,常用方法还记不牢, 于是就编写这篇博客来完整的学习一下Java集合框架的知识,如有遗漏和错 ...
最新文章
- PHP中的urlencode,rawurlencode和JS中的encodeURI,encodeURIComponent
- 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...
- Python 常见优化技巧,让你的程序溜溜的跑起来!
- jd-eclipse反编译插件的离线安装和使用
- 首发:徐亦达教授团队最新发表的两篇机器学习论文
- 动手动脑-Java重载
- html5 移动端单页面布局
- 华为云UGO正式亮相DTCC 2021,去“O”从此再无后顾之忧
- 超级账本执行董事:区块链将削弱谷歌、亚马逊和Facebook的市场力量
- 基于ZYNQ wifi方案实现与测试
- 云服务器虚拟化搭建,虚拟化搭建云服务器
- JavaScript网页购物车
- 22岁对于人生的感悟
- 214页(10万字)以数据驱动为核心的区域医疗数据中台
- 一、个人总结的菜鸟教程|sql教程的知识点(SQL教程)
- 基金的回报率计算公式
- 为什么360如此流氓却还有这么多人用?
- 什么是图灵完备语言?
- 超过了 PCH 的虚拟内存范围;请使用“-Zm120”或更大的命令行选项重新编译
- python修改文件格式为jpg_python将.ppm格式图片转换成.jpg格式文件的方法
热门文章
- SpringBoot-web开发(一): 静态资源的导入(源码分析)
- NVIDIA Turing Architecture架构设计(上)
- 2019个嵌入式市场研究,持续的C/C++优势
- CentOS7在防火墙开启与关闭以及端口操作
- 【CV】OpenCV(基于Python)学习笔记
- getCacheDir() 和 getFilesDir() 的区别
- Android SharedPreferences 的使用
- Error:(17, 0) SDK location not found. Define location with sdk.dir in the local.properties file or w
- Java并发编程(十一)——原子操作CAS
- 洛谷 1774 最接近神的人