Map

因为很多题碰到了Map,我就再看了一下,做了以下整理:

Map(映射),是一种把键对象和值对象进行映射的集合,每一个元素都包含一对键对象和值对象,只要给出键对象,就会返回对应的值对象,通过Map的put(Object key, Object value)方法向集合中加入元素,通过Map的get(Object key)方法来检索与键对象对应的值对象。

 

package sequence;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class map {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		int T = scan.nextInt();
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Monday");
        map.put(2, "Tuesday");
        map.get(2);
        System.out.println(map.get(T));
	}

}

 Map中不能出现重复的键对象,如果出现重复的键对象则用Map的entrySet()方法,返回Set集,集合中的对象不按特定方式排序,并且没有重复对象,Set接口主要有两个实现类:HashSet和TreeSet,那么如果重复的话按照下面的代码:

1.新建一个Map,2.插入值,3.返回Set集合,4.遍历,5.对应值

package sequence;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Map1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Map<Integer,String> map = new HashMap<Integer, String>();
        map.put(1, "Monday");
        map.put(1, "Mon");
        map.put(5, "Friday");
        Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();//迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象
        while(it.hasNext()){
        	Map.Entry entry = it.next();//entry表示Map中的一对键与值
        	System.out.println(entry.getKey()+":"+entry.getValue());
        }
	}

}

 Map有两种比较常用的实现:HashMap和TreeMap,TreeMap实现了SortedMap接口,能对键对象进行排序;Map的keySet()方法返回集合中所有键对象的集合,来进行排序。

package paixu;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class TreeMap {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(1, "Monday");
    map.put(2, "Tuesday");
    map.put(5, "Friday");
    
    Set<Integer> set = map.keySet();
    Iterator<Integer> it = set.iterator();
    while(it.hasNext()){
    	int key = it.next();
    	String value = map.get(key);
    	System.out.println(key+":"+value);
    }
	}

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值