Java集合——Map接口
1.定义
Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复
2.方法
V put(key,value):添加元素
V get(Object key):获取指定key的元素
Set<k> keySet():返回指定对象key的集合
Collection values():返回指定对象value的集合
V remove(Object key):移除指定key的元素,并且返回对应值的引用
Set<Map.Entry<k,v>> entrySet():返回映射中包含映射关系的视图
注:Map接口没有继承Iterable接口,所以不能直接通过map.iterator进行遍历(List,Map拥有该接口,可以直接遍历),需要先转化为set类型,使用entrySet()方法,Map.Entry<k,v>中含有方法getKey()和getValue(),获取对应的键和值。
3.常用实现类
HashMap:和HashSet类似,键按键的HashCode()方法确定存储位置,无序
TreeMap:用于对键进行排序,方式与TreeSet相同
LinkedHashMap:和LinkedHashSet类似
4.实例
import static org.junit.Assert.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.junit.Test;
import day8.Customer;
public class TestMap {
@Test
public void testMapMethods(){
Map m1=new HashMap();
//put(key,value)添加元素
m1.put("aa", new Customer(1,"AA"));
m1.put("bb", new Customer(2,"BB"));
m1.put("cc", new Customer(3,"CC"));
m1.put("dd", new Customer(4,"DD"));
System.out.println(m1.size());
Map m2=new HashMap();
m2.put("aa", new Customer(1,"AA"));
m2.put("bb", new Customer(2,"BB"));
m2.put("cc", new Customer(3,"CC"));
m2.put("dd", new Customer(4,"DD"));
Map<String,Object> m3=new HashMap();
m3.put("aa", new Customer(1,"AA"));
m3.put("bb", new Customer(2,"BB"));
m3.put("cc", new Customer(3,"CC"));
m3.put("dd", new Customer(4,"DD"));
//比较两对象是否相等时,重写Object的equals()方法,如果键值对完全相同,返回true.
System.out.println(m1.equals(m2));
//get(Object key)获取指定key的元素
System.out.println(m1.get("bb"));
//keySet()返回指定对象key的集合
//增强for循环遍历操作
Set keySet=m1.keySet();
for(Object key:keySet){
System.out.println(key);
}
//values()返回指定对象value的集合
Collection value=m1.values();
for(Object val:value){
System.out.println(val);
}
System.out.println();
//遍历操作
//方法一:先得到键的集合,对键进行遍历时得到值
for(Object key:keySet){
Object val=m1.get(key);
System.out.println(key+" : "+val);
}
System.out.println();
//方法二:得到键值对的集合
for(Entry<String,Object> entry:m3.entrySet()){
System.out.println(entry.getKey()+" : "+entry.getValue());
}
System.out.println();
//remove(Object key)移除指定key的元素,并且返回对应值的引用
Object obj=m1.remove("aa");
System.out.println(obj);
System.out.println(m1.size());
}
}
涉及的完整代码:http://www.cnblogs.com/jfl-xx/p/4707643.html
Java集合——Map接口的更多相关文章
- Java集合Map接口与Map.Entry学习
Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...
- Java 集合-Map接口和三个子类实现
2017-10-31 22:05:59 Map 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. HashMap是基于散列表实现的,插入.删除和定位元素时间复杂度平均能达到O ...
- Java集合-Map接口相关操作方法
Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs). 该接口描述了从不重复的键到值的映射. (1) 添加.删除操作: Object put(Ob ...
- Java之Map接口(双列集合)
Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
- Java Core - Map接口
Map:是一组映射The java.util.Map interface represents a mapping between a key and a value. The Map interfa ...
- java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...
- Java 之 Map 接口
一.Map 接口概述 java.util.Map 接口专门用来存放键值对这种对象关系的对象. 下面比较一下 Collection 与 Map 的区别: Collection 中的集合,元素是孤立存在的 ...
- Java从零开始学二十三(集合Map接口)
一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...
随机推荐
- SQL Server 字符串处理
) SET @str='AP-FQC-2014072300004' --获取指定字符第一次出现的位置 SELECT PATINDEX('%-%',@str) --返回:3 --获取指定字符第一次出现的 ...
- CI实践_Android持续集成
之前已经实现了Android的持续集成,并在项目中应用了一段时间.恰逢现在有几分钟时间,把之前的一些零散的点滴记录和整理一下,供有需要的朋友参考,或后续复用. 需要的准备知识:gitlab.Jenki ...
- 微信公众平台开发详细步骤与java代码
1.微信公众平台设置 首先在https://mp.weixin.qq.com/注册一个公众平台账号(服务号.订阅号.企业号的区别) 微信公众平台地址:https://mp.weixin.qq.com ...
- 如何读懂 STATSPACK 报告 (转) & Toad 结合
可与 toad 相结合的内容, 用 这种颜色可以利用 toad(database->monitor->server statistics)查看到下边的很多信息, 比如 wait event ...
- Python学习(7)数字
目录 Python 数字 Python 数字类型转换 Python 数学函数 Python 随机数函数 Python 三角函数 Python 数学常量 Python 数字 Python 数字数据类型用 ...
- JavaSE复习_3 继承
△先默认初始化,在显示初始化,在构造函数初始化 △继承的弊端:代码的耦合性增加了. △子类不能继承父类的构造方法. △子类会拥有父类的私有成员变量,但是必须通过get,set方法访问. △super不 ...
- (二)再议MII、RMII、GMII接口
概述: MII (Media Independent Interface(介质无关接口)或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准.它包括一个数据接口和一个MAC ...
- Android ViewFlipper的使用分析
[ViewFlipper]——基础 1.ViewPager 和ViewFliping的区别: 最显著的区别就是ViewPager在滑动的时候内部的View默认就能够跟随手指滑动,而 ViewFlipi ...
- 修正ios h5上传图时的图片方向问题
.ios上传会在exif中带一个 Orientation的属性,这个属性在windows中不会生效,在ios浏览器中会生效,造成图片在windows资源管理器中与ios浏览器中方向不一致 为了用户 ...
- spring中的Log4jConfigListener作用和webapp.root的设置
转:http://blog.sina.com.cn/s/blog_7bbf356c01016wld.html 使用spring中的Log4jConfigListener有如如下好处: 1. 动 ...