Map集合的应用及其遍历方式
---> HashMap :底层基于哈希表
存储原理也使用哈希表来存放的:
往HashMap添加了元素 ,首先会调用键的hashCode方法 获得一个哈希值,然后经过运算获取一个位置。
情况1:如果位置上没有元素 ,那么直接将该元素存放在此位置。
情况2:如果位置上有了元素,那么还会调用元素equals方法与这个位置的元素做比较,如果反回回来的true,
那么就被视为相同的键,就不存,如果返回回来时false,那么就可存该元素。
---> TreeMap : 给予二叉树的结构存储。 特点:以键来做自然排序
使用注意点:
1.往TreeMap 添加的元素时,如果元素的键具备自然排序功能,那么就会通过自然排序对元素进行排序。
2.往TreeMap 添加的元素时 如果不具备自然排序特性 ,键所属的类必须要实现Comparable接口,把这个键的比较规则
定义在compareTo方法中。
3.往TreeMap 添加的元素时 如果不具备自然排序特性,也没有实现Comparable接口,创建TreeMap的时候给他一个比较器
结构 :
class 类名 implements Compartor 接口{
}
键的比较规则定义在compare方法中。
---> HashTable : HashMap 一样的使用,线程安全。 访问比较慢 (了解)
--->Map集合的便利方式(三种)
map遍历元素方式一: keySet(); Set视图 -->获取所有的键用Set集合来保存
特点 : 通过遍历键 ,通过键来取值
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();
while(it.hasNext()){
String key = it.next();
System.out.println("键"+key +":值"+map.get(key));
}
map集合遍历方式二: values(); 获取map集合中所有的值,用Collection集合来保存
Collection<String> coll = map.values();
创建一个迭代器
Iterator<String> it = coll.iterator();
while(it.hasNext()){
System.out.println("值:"+it.next());
}
map集合的遍历方式三:entrySet();
Set<Map.Entry<String, String>> entrys = map.entrySet();
获取迭代器
Iterator<Map.Entry<String, String>> it = entrys.iterator();
Map.Entry : 接口 :提供给用户来操作map集合
getKey(); 获取键
getValue();获取值
setValue();更改值
while(it.hasNext()){
Map.Entry<String, String> entry = it.next();
String key = entry.getKey();
if(("1").equals(key)){
entry.setValue("哈哈");
}
System.out.println("键:"+entry.getKey() + " 值:"+entry.getValue());
}
Map集合的应用及其遍历方式的更多相关文章
- Map集合的两种遍历方式
Map集合:即 接口Map<K,V> map集合的两种取出方式: 1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中) ...
- Map集合的几种遍历方式
Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...
- Map集合的四种遍历方式
很久以前写的代码,和上一个做比较吧!便于以后查看 import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...
- Map集合的四种遍历方式(转载)
import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { pu ...
- Map集合的4种遍历方式
import java.util.HashMap;import java.util.Iterator;import java.util.Map; public class TestMap { p ...
- Map集合的两种取出方式
Map集合有两种取出方式, 1.keySet:将Map中的键存入Set集合,利用set的迭代器来处理所有的键 举例代码如下: import java.util.*; class Test { publ ...
- Java中List集合的三种遍历方式(全网最详)
List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...
- Map集合的四种遍历
Map集合遍历 Map<String,Integer> m = new HashMap<String,Integer>(); m.put("one",100 ...
- Map<String,String>集合的四种遍历方式 其中有一种针对大容量的数据集合
随机推荐
- ubuntu将命令写在一个文件里,执行文件,source命令
source命令也称为“点命令”,也就是一个点符号(.).source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.用法: source filename 或 . fil ...
- Android 的提权 (Root) 原理是什么?
作者:Kevin链接:https://www.zhihu.com/question/21074979/answer/18176410来源:知乎著作权归作者所有,转载请联系作者获得授权. Android ...
- Angular+Flask搭建一个记录工具
平时用的最多的文本编辑器就是Notepad++,很多东西都是通过Notepad++直接记录的: 没有看完的网页链接 要整理.收藏的网页 读书笔记 要处理的事情 待看/看过的文档和电子书 等等... 随 ...
- finereport与OA系统集成的完全方案
随着社会信息化高速发展,企业信息化也得到了一定提高,而如何提高办公效率已经成为企业一项重要而紧迫的任务,传统的纸质报表等档案不仅浪费纸张.不易存档.不易调阅.不易统计,如何更有效.更快速提升办公效率和 ...
- 准备使用 Office 365 中国版--购买
Office 365中国版支持两种购买方式,Web Direct(在线购买)和CSP(代理商购买).如果客户的企业规模不大(几十个用户,小于100用户)或者是个人/家庭购买,可以直接选择在线购买方式. ...
- MIT 6.824 : Spring 2015 lab2 训练笔记
源代码参见我的github:https://github.com/YaoZengzeng/MIT-6.824 Lab 2:Primary/Backup Key/Value Service Overvi ...
- USB Type-C 接口有什么优点?
USB Type-C 接口有什么优点? 提到USB Type-C接口(以下简称为USB-C),大家第一个能想到的是USB-C接口能正反插,用起来很舒服.了解更多的可能还支持USB-C接口速度更快, 达 ...
- python反弹tty shell
linux环境下进行内外渗透需要反弹shell连接内网ssh,Telnet等,就需要tty层的shell了.python代码转过来的,备用. #!/usr/bin/python import sys ...
- BZOJ 1009 【HNOI2008】 GT考试
Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字.他的不吉利数学A1A2...Am(0< ...
- 架设ftp反向代理服务器
因网络环境限制,需要从内网(不能直接连通外网)向外部的ftp上传.下载文件,只能在网关服务器上架设ftp反向代理(网关服务器可同时连通外网与内网,但是不允许内部应用部署在这台机器上). 试了几个方案: ...