Map

Collection每次只会保存一个对象,而Map主要是负责保存一对对象的信息。也就是我们常说的键值对key-value。

Map接口主要操作方法

如果现在要保存一对关联数据(key=value)的时候,那么如果直接使用Collection不能直接满足要求,所以可以使用Map接口实现此类数据的保存,并且Map接口提供了根据key查找value的方法。
Map的几个主要操作方法:
  • 向集合中保存数据
public V put(K key,V value)
  • 根据key查找对应的value值
public V get(Object key)
  • 将Map集合转化为Set集合
public Set<Map.Entry<K,V>> entrySet>
  • 取出全部的key
public Set<K> keySet()//返回值是一个Set类型的集合,key是不能重复的

Map接口的常用子类

在Map接口下有2个常用的子类:

HashMap子类

  • 使用HashMap定义的Map集合是无序存放的,顺序无用
  • 如果发现出现了重复的key会进行覆盖,使用新的内容替换掉旧的内容
public class HashMapTest {
    public static void main(String[] args) throws Exception{
        Map<String, Integer> map = new HashMap<String,Integer>();
        map.put("壹", 1);
        map.put("贰", 2);
        map.put("叁", 3);
        map.put("叁", 33);//key数据重复
        System.out.println(map);
    }
}
  • 在Map接口里面提供的get()方法是根据key查找所需要的内容的。
public class KeyValueTest {
    public static void main(String[] args) throws Exception{
        Map<String , Integer> map = new HashMap<String,Integer>();
        map.put("壹", 1);
        map.put("贰", 2);
        map.put("叁", 3);
        map.put(null, 9);//key的内容为null
        System.out.println(map.get("壹"));
        System.out.println(map.get("陆"));//如果key值不存在,返回null
        System.out.println(map.get(null));//返回的结果是9
    }
}

通过以上我们可以发现,Map存放数据的最终目的实际就是为了信息的查找,但是Collection存放数据的目的是为了输出

  • 取得全部的key
public class TestMapGetKey {
    public static void main(String[] args) throws Exception{
        Map<String , Integer> map = new HashMap<String,Integer>();
        map.put("壹", 1);
        map.put("贰", 2);
        map.put("叁", 3);
        map.put(null, 9);//key的内容为null
        Set<String> set = map.keySet();//取得全部的key
        //输出取得的key的Set类型的集合
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            String string = (String) iterator.next();
            System.out.println(string);
        }
    }
}

HashTable子类

HashTable没有什么另外的方法,唯一需要注意的是:
HashTable里面的key和value都不可以为允许设置为null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值