java映射Map

来源:互联网 发布:巨峰科技有限公司软件 编辑:程序博客网 时间:2024/06/16 14:43

映射

    Map用于存储一个由关键字(key)和它们的值(value)组成的条目集合。Map把关键字映射到相应的值,关键字必须是独一无二的,但是不同的关键字也可以对应相同的值。因此,值不需要独一无二。

    HashMap中的关键字是无序的,TreeMap中的关键字是有序的。

    Map可以作为一个序偶(pair)的Set实例来实现,它的比较器或者equals/hashCode的实现仅仅涉及关键字。Map接口不是扩展自Collection,它是自己独立存在的。


下面是一个TreeMap的使用实例:

package chapter02;import java.util.Collection;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class MapTest {public static void main(String[] args) {// TODO Auto-generated method stub//创建一个TreeMap        Map<String,Integer> date = new TreeMap<String,Integer>();                //添加键值对        date.put("Monday", 1);        date.put("Tuesday", 2);        date.put("Wednesday", 3);        date.put("Thursday", 4);        date.put("Friday", 5);        date.put("Saturday", 6);        date.put("Sunday", 7);                System.out.println("date.get(\"Monday\"):" + date.get("Monday"));                System.out.println("\nThe map is: ");        //打印输出TreeMap        printMap("date", date);                System.out.println("\nThe keys are: ");        //得到键的集合        Set<String> keys = date.keySet();        //打印输出键        printStringCollection(keys);                System.out.println("\nThe values are: ");        //得到值的集合        Collection<Integer> values = date.values();        //打印输出值        printIntCollection(values);                //删除特定的键值对        date.remove("Tuesday");        //或        /*keys.remove("Tuesday");        values.remove(2);*/                //打印输出删除操作完成后的TreeMap        System.out.println();        System.out.println("After Tuesday and 2 unlisted are removed.");        System.out.println("The map is: ");        printMap("date", date);        }    /** * 打印输出键 * @param keys */private static void printStringCollection(Set<String> keys) {// TODO Auto-generated method stubIterator<String> itr = keys.iterator();while(itr.hasNext()){System.out.print(itr.next() + " ");}}    /** * 打印输出值 * @param values */private static void printIntCollection(Collection<Integer> values) {// TODO Auto-generated method stubIterator<Integer> itr = values.iterator();while(itr.hasNext()){System.out.print(itr.next() + "     ");}System.out.println();}    /**     * 打印输出TreeMap     * @param string     * @param date     */private static <KeyType, ValueType> void printMap(String string, Map<KeyType, ValueType> date) {// TODO Auto-generated method stubSystem.out.println(string + ":");Set<Map.Entry<KeyType, ValueType>> entries = date.entrySet();for(Map.Entry<KeyType, ValueType> thisPair : entries){System.out.print(thisPair.getKey() + ":");System.out.print(thisPair.getValue() + "\n");}}}


运行结果:

/************************************************************************/

date.get("Monday"):1

The map is: 
date:
Friday:5
Monday:1
Saturday:6
Sunday:7
Thursday:4
Tuesday:2
Wednesday:3

The keys are: 
Friday Monday Saturday Sunday Thursday Tuesday Wednesday 
The values are: 
5     1     6     7     4     2     3     

After Tuesday and 2 unlisted are removed.
The map is: 
date:
Friday:5
Monday:1
Saturday:6
Sunday:7
Thursday:4
Wednesday:3

/************************************************************************/

0 0
原创粉丝点击