Java集合——Map接口

1.定义

Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复

2.方法

V  put(key,value):添加元素

V  get(Object key):获取指定key的元素

Set<k>  keySet():返回指定对象key的集合

Collection  values():返回指定对象value的集合

V  remove(Object key):移除指定key的元素,并且返回对应值的引用

Set<Map.Entry<k,v>>  entrySet()返回映射中包含映射关系的视图

注:Map接口没有继承Iterable接口,所以不能直接通过map.iterator进行遍历(List,Map拥有该接口,可以直接遍历),需要先转化为set类型,使用entrySet()方法,Map.Entry<k,v>中含有方法getKey()和getValue(),获取对应的键和值。

3.常用实现类

HashMap:和HashSet类似,键按键的HashCode()方法确定存储位置,无序

TreeMap:用于对键进行排序,方式与TreeSet相同

LinkedHashMap:和LinkedHashSet类似

4.实例

复制代码
 1 import static org.junit.Assert.*;
 2 import java.util.Collection;
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 import java.util.Map.Entry;
 6 import java.util.Set;
 7 import org.junit.Test;
 8 import day8.Customer; 
 9 
10       
11 public class TestMap {
12     @Test
13     public void testMapMethods(){
14         Map m1=new HashMap();
15         //put(key,value)添加元素
16         m1.put("aa", new Customer(1,"AA"));
17         m1.put("bb", new Customer(2,"BB"));
18         m1.put("cc", new Customer(3,"CC"));
19         m1.put("dd", new Customer(4,"DD"));
20         System.out.println(m1.size());       
21         Map m2=new HashMap();
22         m2.put("aa", new Customer(1,"AA"));
23         m2.put("bb", new Customer(2,"BB"));
24         m2.put("cc", new Customer(3,"CC"));
25         m2.put("dd", new Customer(4,"DD"));        
26         Map<String,Object> m3=new HashMap();
27         m3.put("aa", new Customer(1,"AA"));
28         m3.put("bb", new Customer(2,"BB"));
29         m3.put("cc", new Customer(3,"CC"));
30         m3.put("dd", new Customer(4,"DD"));      
31                     //比较两对象是否相等时,重写Object的equals()方法,如果键值对完全相同,返回true.
32         System.out.println(m1.equals(m2));     
33                    //get(Object key)获取指定key的元素
34         System.out.println(m1.get("bb"));      
35                   //keySet()返回指定对象key的集合
36 
37                   //增强for循环遍历操作
38         Set keySet=m1.keySet();
39         for(Object key:keySet){
40             System.out.println(key);
41         }       
42                   //values()返回指定对象value的集合
43         Collection value=m1.values();
44         for(Object val:value){
45             System.out.println(val);
46         }
47         System.out.println();       
48                //遍历操作
49                //方法一:先得到键的集合,对键进行遍历时得到值
50         for(Object key:keySet){
51             Object val=m1.get(key);
52             System.out.println(key+" : "+val);
53         }
54         System.out.println();        
55                //方法二:得到键值对的集合
56         for(Entry<String,Object> entry:m3.entrySet()){
57             System.out.println(entry.getKey()+" : "+entry.getValue());
58         }
59         System.out.println();          
60               //remove(Object key)移除指定key的元素,并且返回对应值的引用
61         Object obj=m1.remove("aa");
62         System.out.println(obj);
63         System.out.println(m1.size());                
64     }
65 }
复制代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值