黑马程序员——集合基础知识(Map)

Map概念

要同时存储两个元素,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值。

存储键值对,并且键是唯一的。

1.添加。

put()如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值。

2.删除

remove()按键删除。

3.判断

4.获取

get(object key)

size()

value()拿值value返回的是值的集合。。。

HashTable 底层是哈西数据结构,不可以存入null键null值,线程同步。

HashMap 底层是哈西表数据结构,允许使用nul键和null值,线程不同步。效率高。

TreeMap  底层是二叉树结构,不同步,可以给键排序。

和Set很像,Set底层使用的就是Map结构。其实是平行x轴的函数。

无序。。put会返回来先添加的值,后添加的值会覆盖原有的值



Map元素取出方式

没有显示迭代器,map中所有的键存入Set集合,因为Set具备迭代,取出所有的键后,根据get获取值。

1.keyset()返回set集合。迭代器:取出了set集合用迭代器取键。。。get(键)将map集合转化成set,再取键取值。

2.entrySet 里面存放的时是关系,把关系取出来。返回map.entry,将map集合中德映射关系存入到Set集合中。my.entry是个接口,entry接口是Map接口里面内部接口,Map需要直接访问MapSet中的数据,内部嵌套类,没有Map就没有Map.entry.

当数据之间存在映射关系的时候,考虑使用map集合

import java.util.*;
public class MapTest {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

Map<String,Integer> hm=
new HashMap<String,Integer>();
hm.put("mia", 52);
hm.put("mfg", 53);
hm.put("mua", 51);
System.out.println(hm);
Set<Map.Entry<String, Integer>> mm=hm.entrySet();
for( Map.Entry<String, Integer> en:mm){
    System.out.println(en.getKey()+">>>"+en.getValue());
}}
}//打印结果
/*{mia=52, mua=51, mfg=53}
mia>>>52
mua>>>51
mfg>>>53*/

当数据之间存在映射关系的时候,考虑使用map集合。



Map扩展知识

map集合被使用是因为具备映射关系。预热班,就业班里面都有学生,学生编号和学生也是映射关系,大集合里面嵌套小集合。一对多映射,大集合就是集合的名字?更大的集合时传智播客,这个学校体系建好后,我想要获取学生信息。

通过遍历传智播客,获取所有教室的信息,在获取所有学生的信息

2.将编号姓名封装成为学生。房间以前存的是map集合,现在存的是List集合

理解Map

Map中最重要的两个方法就是put()和get()。对于put()方法,跟Set的要求一样,每个键都必须有equals()方法,如果使用HashMap()会在放入键的时候,调用hashCode(),确保键的唯一性。设置hashCode的时候要注意两点:1.不要单纯使用对象的哈西地址值,因为两个对象的地址值虽然不一样但是内容一样,有时我们要把他们当成一个对象。2.不要依赖于可变数据,如果我存进去后更改了数据,也有可能导致取的时候找不到该键。

黑马程序员——集合基础知识(Map)

时间: 2024-10-10 07:15:57

黑马程序员——集合基础知识(Map)的相关文章

黑马程序员——集合基础知识(泛型)

集合:泛型基础知识 泛型.(泛型就是类型参数化,默认的时object,虽然不用强制类型转换,这个就要你自己去写特性方法,比如compareto是string的特有方法吧,你可以写但是父类肯定调用不了) itnex t对象都是obj要使用对象的特性功能必须强.编译的时候没问题,因为都不知道你会传什么对象,你橙子也可以当作apple来传,设计的时候并不知道! 泛型作用.1.用于解决安全问题.运行时期出现的问题classcastexception转移到编译时期.2.迭代器里面的itnext()不用强转

黑马程序员——集合基础知识(Collection)

集合基础知识 数组:长度固定,可存基本数据和对象. 集合:只能放对象,不固定.容器也有共性,不断抽取成一个体系,集合框架.参阅顶层创建底层.顶层是collection.collection里有两个常见的接口,List和Set.常见集合有Arraylist,linkedlist,vector,hashSet TreeSet.为什么会出现这么多的容器呢,因为每一个容器对数据的存储方式都有不一样,.这个存储方式称之为数据结构!!因为他们的特点不一样 list因为有脚标存储和删除的效率很低,Set的效率

黑马程序员——Java基础知识之多线程协同

多线程协同 线程间的通讯:对资源的操作动作不同,比如说两个卡车一个拉煤一个装煤,但是他们共享了一个资源. 怎么样把这个资源拿出来?怎样把车装满?这个资源当然是一个类,他里面的组成元素就是对象!!现在我们就要有操作对象的思想了,用对象把这车装满,现在一车装一个对象. 等待唤醒机制: 用的不是sleep是wait.flag标记,这是两人沟通的方式.其实每个标记就要做一次等待或者notify,判断wait,改值notify.线程池.notify唤醒里面的线程,按顺序唤醒.wait和notify必须用在

黑马程序员_JavaSE基础知识总结一:Java编程前奏

------ android培训.java培训.期待与您交流! ---------- 一.计算机概述 1.软硬件与语言 根据冯·诺依曼体系结构,计算机可以划分为五个部分:存储器.运算器.控制器.输入设备.输出设备.我们可以更加简单地把计算机划分为软硬件两个部分,硬件是指计算机系统中由电子,机械和光电元件等组成的各种物理装置,这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础,常见如显示器.扫描仪.键盘等:软件是一系列按照特定顺序组织的计算机数据和指令的集合,又可分为系统软件

黑马程序员-集合框架(Map和Collections)

--Java培训.Android培训.iOS培训..Net培训.期待与您交流!--- 一.概述 Map是一种存储键值对的存储容器,而且保证键的唯一性.提供一种以"键"标识"值"的数据存储方式.接口形式为:Map<K,V>,其中K是此映射所维护的键的类型,V是映射值的类型.其有两个常用子类,HashMap和TreeMap,另有HashTable与HashMap功能类似,是早期版本.三者特点与不同如下: HashMap:JDK1.2版本出现,底层使用哈希表数

黑马程序员_java基础知识精华总结

本文总结了JAVA中的基础知识部分,具体包括:1.对象的初始化:2.2.继承时,对象的初始化过程:3.关于构造方法:4.有关public.private和protected:5.抽象类:6.final关键字:7.接口interface:8.多重继承:9.接口的嵌入:10.类的嵌入:11.异常类. 1.对象的初始化 (1)非静态对象的初始化在创建对象时,对象所在类的所有数据成员会首先进行初始化.基本类型:int型,初始化为0.如果为对象:这些对象会按顺序初始化.※在所有类成员初始化完成之后,才调用

黑马程序员_Java基础知识

java基础知识 1.Dos命令: dir:列出当前目录下所有的的文件及文件夹 md:创建目录 rd:删除目录 cd:进入指定mul cd\:返回到根目录 cd..:退到上级目录 del:删除文件 exit:退出dos命令行 *:通配符 help:帮助命令 2.path系统变量:系统中应用程序所在的路径 临时配置的环境变量的方式:用set命令完成 set:用于查看本机中所有环境变量的信息 set 变量名:查看具体的一个环境变量的值 set 变量名=:清空变量的值 set 变量名=具体值:赋值 在

黑马程序员-java基础知识+环境搭建和变量配置

一.dos命令 软件:是一系列按照特定顺序组织的计算机数据和指令的集合. 交互方式:图形化界面.命令行方式 dir  directory 显示文件和子目录 cd   change directory 改变当前的路径(进入指定目录) md   make directory 新建一个子目录(文件夹) rd   remove directory 删除一个子目录(文件夹) cd.. 返回上一文件夹 cd/  返回根目录(磁盘) del  delete 删除文件 (不走回收站)   del *.txt(删

黑马程序员_JAVA基础知识总结2

IDE > Java Enterprise Edition Java SE >1.在JavaEE开发中,经常要使用到JavaBean.很多环境要求按JavaBean方式进行操作. IntroSpector: PropertyDescript/Introspector/BeanUtils 注解> Java源文件 2.RetentionPolicy.CLASS > 内存中的字节码 @Target元注解用于表示自定义的注解可以用在哪些地方,通过ElementType的枚举元素来指定 泛型