java中在map中存取值操作
来源:互联网 发布:apache官网 日本 编辑:程序博客网 时间:2024/06/05 06:42
在java中map是使用键值对的形式存在的这与数组非常的相似。Map是一个接口它当中包括:HashTable,HashMap,TreeMap等实现类!
对map操作的方法有以下几种,通过这些方法将Map中的内容进行修改:
clear()从Map中清除所有的映射。
remove(指定的键)从Map中删除键和与之关联的值!
put(键,值)在map集合中添加一组键值对。
putAll(Map)将指定的Map复制到此映射中!
HashMap是一个最常用的Map,它是根据键值一一对应的关系来存储数据!根据键可以直接获取到它对应的值。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。(其实也不是不允许多条记录为null,因为看下面我写的代码):
public static void printHashMap(){//操作HashMap()的方法!!hashMap是无序的Map<String, String> map=new HashMap<String, String>();map.put(null,"??");map.put(null, "4");map.put("fasda","fasd");System.out.println(map);}输出的结果就是:
{null=4, fasda=fasd}
可见map.put(null,"??");没有附上值(其实也不是没有付上值只不过后来的map.put(null,"4")将上面的值覆盖了)
HashTable实现一个映象,它不允许所有的键值对为空,但是他允许键值为“”(空字符串)。
Hashtable<String,String> map=new Hashtable<String,String>();//操作HashTable的方法!!!无序的map.put("","01");//map.put(null,"02");map.put("03","03");map.put("04","04");System.out.println(map);Iterator<String> iterator=map.keySet().iterator();while(iterator.hasNext()){Object key=iterator.next();System.out.println(map.get(key));}
输出结果是:
{03=03, 04=04, =01}030401如果将上面的map.put(null,"02")放开的话就会报空指针异常:
Exception in thread "main" java.lang.NullPointerExceptionat java.util.Hashtable.hash(Unknown Source)at java.util.Hashtable.put(Unknown Source)at map.MyMapClass.printHashtable(MyMapClass.java:30)at map.MyMapClass.main(MyMapClass.java:13)
TreeMap默认为是升序排序,可以指定排序用的比较器,但是比较器必须实现Comparator接口。只有TreeMap才能够把保存的记录根据键排序,因此,可以把其他Map转化为TreeMap,转化的方法就是把其他的Map对象作为参数TreeMap即可。
package map;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Hashtable;import java.util.Iterator;import java.util.Map;import java.util.TreeMap;public class MyMapClass {public static void main(String[] args) {printHashMap();System.out.println("----------------------------------------------------");printHashtable();System.out.println("----------------------------------------------------");printTreeMap();System.out.println("-----------------------------------------------------");arrayList();}public static void printHashMap(){//操作HashMap()的方法!!hashMap是无序的Map<String, String> map=new HashMap<String, String>();map.put(null, "4");map.put("fasda","fasd");System.out.println(map);Iterator<String> iterator=map.keySet().iterator();//获得迭代器Iteratorwhile(iterator.hasNext()){//循环获得每个对象Object key=iterator.next();//获得每个键元素System.out.println(map.get(key));//输出值}}public static void printHashtable(){Hashtable<String,String> map=new Hashtable<String,String>();//操作HashTable的方法!!!无序的map.put("01","01");map.put("03","03");map.put("04","04");System.out.println(map);Iterator<String> iterator=map.keySet().iterator();while(iterator.hasNext()){Object key=iterator.next();System.out.println(map.get(key));}}public static void printTreeMap(){TreeMap<String,String> map=new TreeMap<String, String>();map.put("01","01");map.put("03","03");map.put("04","04");System.out.println(map);Iterator<String> iterator=map.keySet().iterator();while(iterator.hasNext()){Object key=iterator.next();System.out.println(map.get(key));}}public static void arrayList(){ArrayList<String> array=new ArrayList<String>();array.add("01");array.add("5q");array.add("03");array.add("04");System.out.println(array);//未排序之前for(int i=0;i<array.size();i++){System.out.println(array.get(i));}Collections.sort(array);//对列表集合进行排序System.out.println(array);}}这是输出的内容:
{null=4, fasda=fasd}4fasd----------------------------------------------------{03=03, 01=01, 04=04}030104----------------------------------------------------{01=01, 03=03, 04=04}010304-----------------------------------------------------[01, 5q, 03, 04]015q0304[01, 03, 04, 5q]
1 0
- java中在map中存取值操作
- java在Oracle中存取图片
- java中map的操作
- Java中Map的操作
- java中Map操作汇总
- 在java中对mysql中blob型的存取
- 在Access中存取图片
- 在Struts2 中存取Cookie.
- 在数据库中存取信息
- 存取在SD卡中
- Java将对象直接在数据库中存取的方法
- Java中存取Rtf文件
- java中map的相关操作
- java action中存Map 在jsp中使用struts2标签 通过map[key]取值
- Java map 存取对象
- 在java中取map中的键、值
- 在Java中如何遍历Map对象
- 在Java中如何遍历Map对象
- [042] 微信公众帐号开发教程第18篇-应用实例之音乐搜索
- sqlserver中的全局变量
- 简单工厂模式
- VC连接MySQL
- 关于socket通信时SIGPIPE的问题
- java中在map中存取值操作
- 单链表逆置
- [043] 微信公众平台开发教程第19篇-应用实例之人脸检测
- Hibernate -- 一对一映射
- IOS语言Object-c语言随笔(一)
- 深入理解js闭包
- Linux 系统内核空间与用户空间通信的实现与分析
- 面试中你不可回避的C、C++的问题(二)
- oracle 的split函数