Java从零开始学二十三(集合Map接口)

一、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());
         }

    }

}
时间: 2024-09-29 14:13:52

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

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

一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collection<E> 二.List接口的扩展方法 No. 方法 类型 描述 1 public void add(int index, E element) 普通 在指定位置增加元素 2 public boolean addAll(int index, Collection<? extends E>

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

一.为什么需要集合框架 数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象.或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题 二.集合框架主要接口 No 接口 描述 1 Collection 是存放一组单值的最大接口,所谓的单值是指集合中的每个元素都是一个对象.一般很少会直接使用此接口直接操作. 2 List 是Collection接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩充,里面的内容是允许重复的. 3 S

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

一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致的 Set接口的实例无法像List接口那样进行双向输出.不存在get方法使用Iterator接口来遍历集合 2个常用方法:hasNext方法表示判断是否还有元素可以迭代 next()方法:返回迭代的下一个元素 Set接口的常用子类 散列存放:HashSet 有序存放:TreeSet 二.使用SetH

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

一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二.Collections类的常用方法及常量 No. 方法 类型 描述 1 public static final List EMPTY_LIST 常量 返回一个空的List集合 2 public static final Set EMPTY_SET 常量 返回空的Set集合 3 public sta

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

一.什么是抽象类和接口 抽象类.接口与类是一个层次的概念,是java中极其重要的概念. 抽象类是从多个类中抽象出来的公共模板,提供子类均具有的功能. 接口是从多个类中抽象出来的规范,体现的是规范和实现分离的原则,同时也有效的解决了java单重继承的缺陷 二.抽象类 2.1.抽象类与普通类的区别 抽象类的class前面有abstract关键字,而普通类没有 /* * 抽象类 */ public abstract class Person1 {} /* * 普通类 */ public class P

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

一.BigInteger 如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作. 不可变的任意精度的整数.所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型).BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法.另外,BigInteger 还提供以下运算:模算术.GCD 计算.质数测试.素数生成.位操作以及一

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

一.Math概述 提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率) 二.常用方法 package com.pb.demo1; public class MathTest { public static void main(String[] args) { System.out.println("求平方根:" + Math.sqrt(9.0)); System.out.println("求两数的最大值:" + Math.max(10,30))

Java从零开始学二十七(NumberFormat类)

一.NumberFormat表示数字的格式化类 NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示. No. 方法 类型 描述 1 public static Locale[] getAvailableLocales() 普通 返回所有语言环境的数组 2 public static final NumberFormat getInstance() 普通 返回当前默认语言环境的数字格式 3 public static NumberFormat getInstanc

Java从零开始学二(标识符和关键字)

标识符.关键字.注释 一.标识符 Java中的包.类.方法.参数和变量的名字由任意顺序的大小字母.数字.下划线(_).和美元符号($)组成, 标识符:不能以数字开头.也不能是JAVA中的保留关键字 如:yourname.yourname_dxh.li_yourname.$yourname都是合法的标识符 class.67.9,Hello World是不合法的,class是关键字,67.9以数字开头,Hello World中间有空格 二.关键字      Java中的关键字 abstract bo