Java集合(类)框架(三)
1. Map集合
相较于List和Set集合而言,Map集合所储存的数据为双列行,数据是以key和value为一个单位进行存储的,如在建立一个学生Map的时候,其中的数据应为 学号-姓名(key-value)等双列行类型 。
其中key的值不可以重复,value的值可以重复(其中道理显而易见:一个班级中可能有重名的同学,但是不会有两个同学的学号是重复的),此外,不一定要将学号和姓名作为储存数据,其他
的数据也可,其中具体哪个数据为key哪个数据为value由自己根据数据是否能重复来决定。
1.1 hashMap和treeMap的区别
hashMap为无序排列,在打印输出时也是乱序的,不会根据元素添加的先后顺序打印;
treeMap为有序排列,无论输入顺序是什么,在打印输出时统一按照key的值进行顺序输出。
1.2 Map集合的方法
声明
与Collection下的两个集合相似
Map<String, String> map01 = new hashMap<>();
Map<String, String> map02 = new treeMap<>();//多态
其中数据类型由使用者决定,并不要求一定都是String类型
增
添加元素时如果与之前的key值相同,那么新添加的元素会将原来的元素覆盖
与Collection下的两个集合不同,Map添加元素的方法为put(key, val);
key与val的数据类型在声明时确定
删
remove();
改
由于新元素会对旧元素进行覆盖,如果要修改key下对应的value值,直接添加一个相同key值不同value值的元素进行覆盖即可
查
get(key);
getClass();
遍历
除根据for循环遍历外还可直接print(hashMap);进行全部元素的打印输出
1.3 备注
在添加元素时虽然新元素会完成对旧元素的覆盖,但是新元素的返回值依旧是其覆盖元素的value值,如
haspMap.put(1, "hello");
String str = hashMap.put(1, "world");
System.out.print(str); //print: hello
System.out.print(hashMap.get(1)); //print: world
根据以上代码进行区分
Java集合(类)框架(三)的更多相关文章
- Java集合(类)框架(一)
集合类均在java.util包之下 集合类方法的功能基本为增.删.改.查,部分外加方法除外(如toArray().toString()等) 1.List接口 底层为Object 数组,存放的数据可以重 ...
- Java集合(类)框架(二)
1.Set集合 1.1 HashSet集合 HashSet底层为哈希码 不是数组,因此没有下标的概念,也就不能根据下标来查询某个元素 存放元素无序,不可重复 1.1.1 声明 Set<Strin ...
- Java 集合总体框架介绍
Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...
- Java集合--整体框架
Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表.Set集合 ...
- Java 集合系列(三)—— LinkedList
以脑图的形式来展示Java集合知识,让零碎知识点形成体系 LinkedList LinkedList是一种可以在任何位置进行高效地插入和删除操作的有序序列. 它的最基本存储结构是一个节点:每 ...
- 《Java大学教程》—第17章 Java聚焦类框架
由所有聚焦类构成,在java.util包中,包含三个重要接口:* List列表:元素为单个对象,元素在列表中是有序.可重复* Set集合:元素为单个对象,元素在集合中无序.不可重复* ...
- Java提高配(三七)-----Java集合细节(三):subList的缺陷
我们经常使用subString方法来对String对象进行分割处理,同时我们也可以使用subList.subMap.subSet来对List.Map.Set进行分割处理,但是这个分割存在某些瑕疵. 一 ...
- Java常用类(三)之StringBuffer与StringBuidler
前言 前面一篇给大家介绍了String类,这个我们经常会用到的一个类,那这一篇给大家分享的是StringBuffer与StringBuidler.等下我也会比较他们三个之间的区别 一.StringBu ...
- Java集合整体框架
Java中的集合类有List.Set.Map Collection的实现类:List.Set List的实现类:ArrayList.LinkedList.Vector Set的实现类:HashSet. ...
随机推荐
- CSP-J 2019复赛分析
[CSP-J 2019 ]复赛分析 前言(????) 总的来说,这次复赛感觉考的很不满意,至于原因,感慨万分!关键是:期中考试了!偏偏是这个时候! - 由于我是一个初二的蒟蒻,所以考试前先定了一个目标 ...
- 061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结
061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结 本文知识点:一维数组总结 总结 注意点
- 《C++ primerplus》第13章练习题
1.对CD类的派生练习.基类CD类存储作者和作品号等信息,派生类Classic额外增加一格"主要作品"的信息.主函数使用拷贝构造函数.按引用传递参数的函数和指针来测试基类和派生类的 ...
- vue实现语音播报功能
1,创建一个js文件 (voicePrompt.js) function voicePrompt (text){ new Audio('http://tts.baidu.com/text2audio? ...
- .NET Standard 系列
.NET Standard 是一套正式的 .NET API 规范,有望在所有 .NET 实现中推出. 推出 .NET Standard 的背后动机是要提高 .NET 生态系统中的一致性. ECMA 3 ...
- 发现3 .js与Android和英特尔XDK
下载example3.zip - 456.5 KB 下载apk14.zip - 6.8 MB 下载apk13.zip - 6.8 MB Introduction 本文是关于使用Intel XDK和t ...
- 白话解析:一致性哈希算法 consistent hashing【转】
学习一致性哈希算法原理的时候看到博主朱双印的一片文章,看完就懂,大佬! 白话解析:一致性哈希算法 consistent hashing
- Python解析yaml配置文件
1.代码测试 import yaml fd = open('fileName.yaml', 'r') dict_tmp = yaml.load(fd) fd.close() print dict_tm ...
- 界面酷炫,功能强大!这款 Linux 性能实时监控工具超好用!
对于维护.管理Linux系统来说,它的性能监控非常重要,特别是实时监控数据,这个数据有利于我们判断服务器的负载压力,及时调整资源调配,也有助于更好的服务于业务.所以,今天民工哥给大家安利一款 Linu ...
- empty()和size() == 0有区别吗
empty()和size() 这里说的empty()和size()都是STL的容器中提供的接口,分别用来判断当前容器是否为空和获取当前包含的元素个数 区别 其实按道理来说两者应该是相等的,而且STL容 ...