首页 > Java开发 > java中在map中存取值操作

java中在map中存取值操作

在java中map是使用键值对的形式存在的这与数组非常的相似。Map是一个接口它当中包括:HashTable,HashMap,TreeMap等实现类!

 

对map操作的方法有以下几种,通过这些方法将Map中的内容进行修改:

clear()从Map中清除所有的映射。

remove(指定的键)从Map中删除键和与之关联的值!

put(键,值)在map集合中添加一组键值对。

putAll(Map)将指定的Map复制到此映射中!

HashMap是一个最常用的Map,它是根据键值一一对应的关系来存储数据!根据键可以直接获取到它对应的值。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。(其实也不是不允许多条记录为null,因为看下面我写的代码):

 

[java]
  1. public static void printHashMap(){//操作HashMap()的方法!!hashMap是无序的
  2.         Map<String, String> map=new HashMap<String, String>();
  3.         map.put(null,"??");
  4.         map.put(null, "4");
  5.         map.put("fasda","fasd");
  6.         System.out.println(map);
  7. }

输出的结果就是:

[java] 
  1. {null=4, fasda=fasd}

可见map.put(null,"??");没有附上值(其实也不是没有付上值只不过后来的map.put(null,"4")将上面的值覆盖了)

 

HashTable实现一个映象,它不允许所有的键值对为空,但是他允许键值为“”(空字符串)。

 

[java]
  1. Hashtable<String,String> map=new Hashtable<String,String>();//操作HashTable的方法!!!无序的
  2.         map.put("","01");
  3.         //map.put(null,"02");
  4.         map.put("03","03");
  5.         map.put("04","04");
  6.         System.out.println(map);
  7.         Iterator<String> iterator=map.keySet().iterator();
  8.         while(iterator.hasNext()){
  9.             Object key=iterator.next();
  10.             System.out.println(map.get(key));
  11.         }

输出结果是:

[java]
  1. {03=03, 04=04, =01}
  2. 03
  3. 04
  4. 01

如果将上面的map.put(null,"02")放开的话就会报空指针异常:

 

 

[java] 
  1. Exception in thread "main" java.lang.NullPointerException
  2.     at java.util.Hashtable.hash(Unknown Source)
  3.     at java.util.Hashtable.put(Unknown Source)
  4.     at map.MyMapClass.printHashtable(MyMapClass.java:30)
  5.     at map.MyMapClass.main(MyMapClass.java:13)

TreeMap默认为是升序排序,可以指定排序用的比较器,但是比较器必须实现Comparator接口。只有TreeMap才能够把保存的记录根据键排序,因此,可以把其他Map转化为TreeMap,转化的方法就是把其他的Map对象作为参数狗仔TreeMap即可。


本文固定链接: http://www.devba.com/index.php/archives/5155.html | 开发吧

报歉!评论已关闭.