Map接口的学习
接口Map<K, V>
一、Map功能
1.添加
put(K key, V value)
putAll(Map<? extends K, ? extends V>);
2.删除
clear()
remove(Object key); 返回对应的值
3.判断
containsKey(Object key)
containsValue(Object value)
isEmpty()
4.获取
get(Object key) :不在返回null
size()
values();
-------------------------------------
重点:entrySet() 、 keySet();
map集合的两种取出方式
1.keySet : Set<K>:返回此映射中包含的键的set视图
因为Set具备迭代器,所以可以通过迭代方式取出所有的键,再通过get方法,获取每一个键对应的值。
Map<String, String> map = new HashMap<String, String>();
map.put();
//先获取键的set集合
Set<String> ks = map.keySet();
//迭代器
Iterator<String> it = ks.iterator();
while(it.hasNext()){
String key = it.next();
String value = map.get(key);
System.out.println(key + “-->”+ value);
}
2.entrySet: Set<Map.Entry<K, V>>
返回此映射中包含的映射关系的Set视图
Map.Entry:将map集合中的映射关系存入到Set集合中,而这个关系的数据类型就是Map.Enty
//将Map集合中的映射关系取出,存入到Set集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
Iterator<Map.Entry<String, String>> it = entrySet.iterator();
while(it.hasNext()){
Map.Entry<String, String> me = it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key + “ ” + value);
}

--------------------------------------
Entry也是一个接口,它是Map接口中的一个内部接口
Interface Map
{
public static Interface Entry{
public abstract Object getKey();
public abstract Object getValue();
}
}
class HashMap implements Map
{
class HaHa implements Map.Entry{
public Object getKey(){}
public Object getValue(){}
}
}
-------------------------------------
二、常见的小弟
Hashtable:底层是哈希表数据结构,不可以存入null,它是线程同步的(JDK1.0) 效率低
HashMap:基于哈希表的Map接口,可以使用null,它不是线程同步的。(JDK1.2) 效率高
TreeMap:基于二叉树的,可以用于键排序,不是线程同步。
Set:set底层就是使用了Map集合
三、Map Demo
Map<String, String> map = new HashMap<String, String>();
map.put(“1”,”cc”);
sysout(map.containsKey(1));
sysout(map.remove(“1”));
map.get(“1”);//不在返回null
注意:当时HashMap的时候map.put(“abc”,null);
这样是可以的。当HashTable就不可以了。
//values()
获取map集合中所有的值。
map.values();//返回Collection<V>
Collection<String> coll = map.values();
Map接口的学习的更多相关文章
- Java集合Map接口与Map.Entry学习
Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...
- Java学习笔记32(集合框架六:Map接口)
Map接口与Collection不同: Collection中的集合元素是孤立的,可理解为单身,是一个一个存进去的,称为单列集合 Map中的集合元素是成对存在的,可理解为夫妻,是一对一对存进去的,称为 ...
- Java学习(Map接口)
一.概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. 1. Collection中的集合,元素是孤立存在的(理解为单身), ...
- Java学习--list,set,Map接口使用
list接口: 泛型:规定list中的元素的类型 /* * * 泛型不能使用基本数据类型(可以使用基本类型的包装类) * */ public void tes ...
- Java学习笔记——Map接口
Map接口 Map接口 Map接口中键和值一一映射. 可以通过键来获取值. 异常 NoSuchElementException:访问的值不存在 ClassCastException:对象类型错误 Un ...
- Java学习:Map接口
Map集合 Collection接口: 定义了单列集合规范 Collection<E> 每次存储一个元素 单个元素 Map接口:定义了双列集合的规范 Map<K,V> 每次存储 ...
- Map接口,Map.Entry,hashMap类,TreeMap类,WeakHashMap。
Collection接口之前接触过,每次保存的对象是一个对象,但是在map中保存的是一对对象,是以key->value形式保存的. 定义: public interface Map<K,V ...
- Java集合之Map接口
Map使用键值对来存储数据,将键映射到值对象,一个映射不能包含重复的键,每一个键最多只能映射到一个值.Map接口的具体实现类:HashMap,Hashtable,TreeMap,LinkedHashM ...
- Java集合中的Map接口
jdk1.8.0_144 Map是Java三种集合中的一种位于java.util包中,Map作为一个接口存在定义了这种数据结构的一些基础操作,它的最终实现类有很多:HashMap.TreeMap.So ...
随机推荐
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
在工程计算相关项目中,常常利用Matlab来完成计算.算法.绘图等功能.使用Matlab来完成这些功能非常简单,Matlab提供的m编程语言功能强大,代码量少.为了在自己的C/C++项目中加入这些功能 ...
- java字符串函数及理解
Java中的字符串也是一连串的字符.但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理.将字符串作为内置的对象处理允许Java提供十分丰富的功能特性 ...
- Open virtual effects in Ubuntu 12.04LTS
Need install below packages: compiz compiz-core compiz-fusion-plugins-extra+ compiz-fusion-plugins-m ...
- XMLHttpRequest对象的使用
1.首先要创建XMLHttpRequest对象,这个对象是前台与后台进行异步的重要对象,现在的浏览器有很多种,创建 XMLHttpRequest 的方法也不相同,所以为了兼容各种浏览器,在创建XMLH ...
- 浅谈Servlet(二)
1.forward(请求的转发)和redirect(重定向) 目的:都是为了把一个Servlet的功能,拆分到多个Servlet中,便于后续代码的维护. a.forward(请求转发) (1).如何在 ...
- CV_EXPORTS定义及作用
CV_EXPORTS 常用如下: class CV_EXPORTS MatExpr; template<typename _Tp> class CV_EXPORTS Size_; CV_E ...
- C++的常量折叠(二)
前面的C++的常量折叠(一)的最后留下了一个问题,那就是在声明i的时候,加上修饰符volatile关键字,发现结果输出的就不一样了,下面来说一下volatile这个关键字. C/C++中的volati ...
- Linux Mysql Client 查询中文乱码
1.mysql client 端设置编码为utf8 set character_set_results=utf8; 2.连接linux的客户端的编码也要设置为utf8(比如xshell,putty等)
- SQLITE 多进程查询出错database is locked
程序比较简单: 父进程查询数据库A表,没有更新操作 子进程同时查询数据库A表,查询出来的内容更新B表. 两个进程都放到while(1)循环中,速度慢的话就是2S执行一次就没有错,执行的速度快的话就会报 ...
- Mac 让 iTerm2 记住用户名密码 expect 脚本
刚刚用iTerm2的时候,总是要一遍遍的敲用户名.密码. 我在想, 能不能像Windows的软件一样,可以直接让软件记住.然后只要点击一下,就直接ssh到远程服务器上面去了. 之后经过搜索,可以用ex ...