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,因为看下面我写的代码):

public static void printHashMap(){//操作HashMap()的方法!!hashMap是无序的

Map map=new HashMap();

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 map=new Hashtable();//操作HashTable的方法!!!无序的

map.put("","01");

//map.put(null,"02");

map.put("03","03");

map.put("04","04");

System.out.println(map);

Iterator iterator=map.keySet().iterator();

while(iterator.hasNext()){

Object key=iterator.next();

System.out.println(map.get(key));

}

输出结果是:

{03=03, 04=04, =01}

03

04

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

Exception in thread "main" java.lang.NullPointerException

at 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 map=new HashMap();

map.put(null, "4");

map.put("fasda","fasd");

System.out.println(map);

Iterator iterator=map.keySet().iterator();//获得迭代器Iterator

while(iterator.hasNext()){//循环获得每个对象

Object key=iterator.next();//获得每个键元素

System.out.println(map.get(key));//输出值

}

}

public static void printHashtable(){

Hashtable map=new Hashtable();//操作HashTable的方法!!!无序的

map.put("01","01");

map.put("03","03");

map.put("04","04");

System.out.println(map);

Iterator iterator=map.keySet().iterator();

while(iterator.hasNext()){

Object key=iterator.next();

System.out.println(map.get(key));

}

}

public static void printTreeMap(){

TreeMap map=new TreeMap();

map.put("01","01");

map.put("03","03");

map.put("04","04");

System.out.println(map);

Iterator iterator=map.keySet().iterator();

while(iterator.hasNext()){

Object key=iterator.next();

System.out.println(map.get(key));

}

}

public static void arrayList(){

ArrayList array=new ArrayList();

array.add("01");

array.add("5q");

array.add("03");

array.add("04");

System.out.println(array);//未排序之前

for(int i=0;i

System.out.println(array.get(i));

}

Collections.sort(array);//对列表集合进行排序

System.out.println(array);

}

}这是输出的内容:

{null=4, fasda=fasd}

4

fasd

----------------------------------------------------

{03=03, 01=01, 04=04}

03

01

04

----------------------------------------------------

{01=01, 03=03, 04=04}

01

03

04

-----------------------------------------------------

[01, 5q, 03, 04]

01

5q

03

04

[01, 03, 04, 5q]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值