一、Map接口

Collection、Set、List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à value的形式存储在集合之中

二、常用方法

No.
方法或类
类型
描述
1
public void clear()
普通
清空Map集合
2
public boolean containsKey(Object key)
普通
判断指定的key是否存在
3
public boolean containsValue(Object value)
普通
判断指定的value是否存在
4
public Set<Map.Entry<K,V>> entrySet()
普通
将Map对象变为Set集合
5
public boolean equals(Object o)
普通
对象比较
6
public V get(Object key)
普通
根据key取得value
7
public int hashCode()
普通
返回哈希码
8
public boolean isEmpty()
普通
判断集合是否为空
9
public Set<K> keySet()
普通
取得所有的key
10
public V put(K key, V value)
普通
向集合中加入元素
11
public void putAll(Map<? extends K,? extends V> t)
普通
将一个Map集合中的内容加入到另一个Map
12
public V remove(Object key)
普通
根据key删除value
13
public int size()
普通
取出集合的长度
14
public Collection<V> values()
普通
取出全部的value

三、例子

package com.pb.demo2;

public class Person {
private String name;
private int age; public Person() { } public Person(String name, int age) {
this.name = name;
this.age = age;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }
package com.pb.demo2;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set; import com.pb.demo1.Person; public class MapTest { public static void main(String[] args) {
/*
* 1.创建多个Person对象并赋值
*/
Person p1 = new Person("张三",21);
Person p2 = new Person("李四",22);
Person p3 = new Person("王五",23);
Person p4 = new Person("赵六",24);
Person p5 = new Person("钱七",25);
//2.创建保存键--值对的集合对象
Map<String,Person> perMap=new HashMap<String,Person>();
//3.使用put将英文名与对象按照键-值对的方式在座存储在HashMap中
perMap.put("Denny", p1);
perMap.put("Jony", p2);
perMap.put("Rose", p3);
perMap.put("Kitter", p4);
perMap.put("Boby", p5);
//4.打印键集
System.out.println("++++++++打印键集+++++++++");
System.out.println(perMap.keySet());
//5.打印值集
System.out.println("=========打印值集=======");
System.out.println(perMap.values());
//6.打印键-值对集合
System.out.println("=========打印键-值对集合=======");
System.out.println(perMap);
//7.判断是否存在"Denny"这个键
if(perMap.containsKey("Denny")){
//8.如果存在,根据键获取相应的值
Person p =perMap.get("Denny");
System.out.println("姓名: "+p.getName());
System.out.println("年龄: "+p.getAge());
}
System.out.println("=======遍历HashMap=======");
//遍历HashMap
//首先遍历key集合,keySet方法返回的是Set集合
Set<String> keySet=perMap.keySet();
Iterator<String> iterator=keySet.iterator();
while(iterator.hasNext()){
String key=iterator.next();
System.out.print("英文名:"+key);
//根据key值取出值
Person p =perMap.get(key);
System.out.print("\t姓名: "+p.getName());
System.out.println("\t年龄: "+p.getAge());
} } }

Java从零开始学二十三(集合Map接口)的更多相关文章

  1. Java从零开始学二十一(集合List接口)

    一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collecti ...

  2. Java从零开始学二十(集合简介)

    一.为什么需要集合框架 数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象.或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题 二.集合框架主要接口 ...

  3. Java从零开始学二十二(集合Set接口)

    一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致 ...

  4. Java从零开始学二十四(集合工具类Collections)

    一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...

  5. Java从零开始学十八(抽象类和接口)

    一.什么是抽象类和接口 抽象类.接口与类是一个层次的概念,是java中极其重要的概念. 抽象类是从多个类中抽象出来的公共模板,提供子类均具有的功能. 接口是从多个类中抽象出来的规范,体现的是规范和实现 ...

  6. Java从零开始学四十三(DOM4j解析XML)

    一.创建XML // 建立XML public static void gernatorXML() { // 创建Document对象 Document doc = DocumentHelper.cr ...

  7. Java从零开始学三十三(JAVA IO- File类)

    一.简述 在整个io包中,唯一表示与文件本身有关的类就是File类.使用File类可以进行创建或删除文件等常用操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示: ...

  8. Java从零开始学二十九(大数操作(BigIntger、BigDecimal)

    一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中 ...

  9. Java从零开始学二十八(Math类和Random类)

    一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { ...

随机推荐

  1. Codeforces Round #234 (Div. 2) A. Inna and Choose Options 模拟题

    A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ...

  2. Codeforces Round #279 (Div. 2) C. Hacking Cypher 机智的前缀和处理

    #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #incl ...

  3. javascript小记-作用域

    一.全局作用域 全局作用域的变量不论在什么时候都可以直接引用,而不必通过全局对象:满足以下条件的变量属于全局作用域:1.在最外层定义的变量2.全局对象的属性3.任何地方隐式定义的变量(未定义直接赋值的 ...

  4. http://qurtyy.blog.163.com/blog/static/5744368120130221419244/

    我们先来看它的思路:把控制不透明度和控向上移动的动画分别存储在两个队列中,控制向上移动的队列按默认情况进行(在2000毫秒内完成),而不透明度的控制在1000毫秒内执行,但这个队列要晚于默认队列100 ...

  5. oracle 取整的几种方法

    --1.取整(大)      select ceil(-1.001) value from dual ; --2.取整(小) select floor(-1.001) value from dual ...

  6. lykchat+zabbix实现微信告警

    http://www.ttlsa.com/zabbix/lykchat-zabbix-wechat-alert/

  7. 算法学习 - 平衡二叉查找树实现(AVL树)

    平衡二叉查找树 平衡二叉查找树是非常早出现的平衡树,由于全部子树的高度差不超过1,所以操作平均为O(logN). 平衡二叉查找树和BS树非常像,插入和删除操作也基本一样.可是每一个节点多了一个高度的信 ...

  8. KJBitmap使用方法

    摘要 本文原创,转载请注明地址:http://kymjs.com/code/2015/03/25/01 摘要 好像最近一个月都没有写博客了,正好伴着KJFrameForAndroid 更新v2.14版 ...

  9. nginx配置location总结

    location匹配顺序 "="前缀指令匹配,如果匹配成功,则停止其他匹配 普通字符串指令匹配,顺序是从长到短,匹配成功的location如果使用^~,则停止其他匹配(正则匹配) ...

  10. [12] 扇形体(Fan)图形的生成算法

    顶点数据的生成 bool YfBuildFunVertices ( Yreal radius, Yreal degree, Yreal height, Yuint slices, YeOriginPo ...