java学习笔记_Java学习笔记day11

java学习笔记_Java学习笔记day11_第1张图片

Map集合


java.util.Map集合
Map集合特点:
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
3.Map集合中掉元素,key是不允许重复的,value是可以重复的
4.Map集合中掉元素,key和value是一一对应的
java.util.HashMap集合 implements Map接口
HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表长度超过8):提高查询的速度
2.hashMap集合是一个无序集合,存储元素和取出怨怒是的顺序可能不一致
java.util.LinkedHashMap集合 extends HashMap集合
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序集合,存储元素和取出元素的顺序是一致的

import 

Map集合的第一种遍历方式:通过键找值的方式
Map集合中的方法:
Set keySet() 返回此映射中包含的键的Set视图
实现步骤:
1.使用Map集合中的方法keySet(),把Map集合中所有的Key取出来,存储到一个Set集合中
2.遍历Set集合,获取Map集合中的每一个Key
3.通过Map集合中的方法get(key),通过key找到value

import 

Map集合遍历的第二种方式:使用Entry对象遍历
Map集合中的方法:
1.Set> entrySet() 返回此映射中包含的映射关系的视图
实现步骤:
1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2.遍历Set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue()获取键与值

import 

HashMap存储自定义类型键值
Map集合保证key是唯一的:
作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一

public 

Person类

import 

LinkedHashMap集合
java.util.LinkedHashMap extends HashMap
Map接口的哈希表和链接列表实现,具有可预知的迭代器顺序
底层原理:
哈希表+链表(记录元素的顺序)

import 

Hashtable集合


java.util.Hashtable集合 implements Map接口
Hashtable:底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢
HashMap:底层是一个哈希表,是一个线程不安全的集合,是多线程集合,速度快
HashMap集合(之前学的所有的集合):可以存储null值,null键
Hashtable结婚,不能存储null值,null键
Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的(HashMap,ArrayList)取代
Hashtable的子类Properties依然活跃在历史舞台
Properties集合是唯一和IO流相结合的集合

import 

JDK9新特性
lis接口,Set接口,Map接口:增加了一个静态方法of,可以给集合一次性添加多个元素
static list of (E.. elements)
使用前提:
当集合中存储的元素的个数已经去欸的那个了,不再改变时使用
注意:
1.of方法只适用于list接口,Set接口,Map接口,不适用于接口的实现类
2.of方法的返回值是一个不可改变的集合,集合不必不能再使用add,put方法添加元素,否则会抛异常
3.Set接口和Map接口在调用of方法的时候,不能有重复元素,否则会抛出异常

public 

Debug调试代码

HashTable和HashMap的区别详解 - 割肉机 - 博客园​www.cnblogs.com
java学习笔记_Java学习笔记day11_第2张图片

你可能感兴趣的:(java学习笔记,java学习笔记jdk9pdf,java遍历map)