Java 集合19 Map的特点及基本使用

新的需求:
0——>星期日
1——> 星期一
有对应的关系,对应关系是有序的数字,可以将数字作为角标。使用数组

String[]  weeks = {"星期一","星期二","星期三"..}//一张记录对应关系的表
//也可以换成List 集合
if(num<0||num>7){
throw new NoWeekException("没有这个星期");}
return weeks[num];

新需求:
星期一——->Moday
…..
星期日——->Sunday //也存在对应关系但是没有可以作为角标的存在
通过:输入星期,获取角标。在用角标,在英文的表里面返回对应的英文

List list1 = new ArrayList();
list.add(存储中文)

List list2 = new ArrayList();
list.add(存入英文)

int index = list.indexOf("星期一");
String s= list.get(index);
//就可以获取中文对应的英文

解决中英对应关系,可 以通过两个List 来完成。
一个List 中通过获取对应的角标。在用脚表到另一个存储英文的List 中获取对应的星期英文。
前提:必须保证中英文间的角标是一致的。
但是这样就比较麻烦,Collection 集合一次只能存入一个元素。

之前的集合都只能存储一个类型的对象,考虑:能否将这两个对应的对象存入一个几何中,换句话说要将他们的对应关系存入
集合框架中是否提供了相应的的解决方案——————interface Map

String[]  weeks = {"星期一","星期二","星期三"..}//一张记录对应关系的表
//也可以换成List 集合
if(num<0||num>7){
throw new NoWeekException("没有这个星期");}
return weeks[num];

新需求:
星期一——->Moday
…..
星期日——->Sunday //也存在对应关系但是没有可以作为角标的存在
通过:输入星期,获取角标。在用角标,在英文的表里面返回对应的英文

List list1 = new ArrayList();
list.add(存储中文)

List list2 = new ArrayList();
list.add(存入英文)

int index = list.indexOf("星期一");
String s= list.get(index);
//就可以获取中文对应的英文

解决中英对应关系,可 以通过两个List 来完成。
一个List 中通过获取对应的角标。在用脚表到另一个存储英文的List 中获取对应的星期英文。
前提:必须保证中英文间的角标是一致的。
但是这样就比较麻烦,Collection 集合一次只能存入一个元素。

————————————————-Map———————————————————————-

之前的集合都只能存储一个类型的对象,考虑:能否将这两个对应的对象存入一个几何中,换句话说要将他们的对应关系存入
集合框架中是否提供了相应的的解决方案——————interface Map

//存储
V put(K key, V value) //将指定的值与该映射中的指定键相关联(可选操作)。  
//获取键对应的值
V get(Object key) //返回到指定键所映射的值,或 null如果此映射包含该键的映射。  
//通过键将映射关系移除,并且返回值
V remove(Object key) //如果存在(从可选的操作),从该地图中 移除
//删除
int size() //返回此地图中键值映射的数量。  

对于存储关系这个元素:V put(K key, V value)
将指定的值 与 键相关联,如果这个键之前有关联的值,那么,将被现在输入的值替换,并且返回先前的对应值,如果没有则返回空
Map 基本方法的演示:

package Collection;
import java.util.*;
//演示双列集合  Map
public class MapDemo1 {
    public static void main(String[]  args){
        //创建
        Map<String,String> map = new HashMap<String,String>();
        //添加元素
        map.put("星期日","Sunday");

        System.out.println(  map.put("星期一","Monday"));//返回null
        System.out.println( map.put("星期一","Mon"));
        //键相同,值会被覆盖,被覆盖的值会被返回//这也是键唯一的保证
        System.out.println(map);

        //通过给定的键获取值
        String value1= map.get("星期一");
        String value2 = map.get("星期二");//键不存在,怎返回null

        //删除,通过键删除关系,并且要返回值
        String s= map.remove("星期日");//存在对应的关系则将关系删除并且返回值
        System.out.println(map);
    }
}

运行结果:
null
Monday
{星期日=Sunday, 星期一=Mon}
{星期一=Mon}

Collection 单列集合 // Map 双列集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值