JAVA语言之 map集合类
小标 2018-07-24 来源 : 阅读 1186 评论 0

摘要:本文主要向大家介绍了JAVA语言之 map集合类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之 map集合类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

Map<k,v>
Map:双列集合,一次存一对,键值对,类似于python的字典。
共性功能:
1、添加
    v put(key,value)     //返回key的旧值
    putAll(Map<k,v> map);
    
2、删除
    void clear();
    v remove(key);               //删除该键并返回值

3、判断
    boolean containsKey(object)
    boolean containsValue(object);
    boolean isEmpty();

4、获取
    v get(key);                   //获取该键的值,不删除
    int size();

例子:

 

public static void main(String[] args)

{

    Map<Integer,String> map = new HashMap<Integer, String>();

    methodDemo(map);

}public static void methodDemo(Map<Integer,String> map){

    System.out.println(map.put(3, "xx"));

    System.out.println(map.put(3, "xxx"));

    map.put(7, "iii");

    System.out.println(map);

}

 

运行结果:
null
xx
{3=xxx, 7=iii}

keySet()方法
没有迭代器,所以用Set keySet()方法,方法会取出所有的键到Set集合里面

Set<Integer> keySet = map.keySet();for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {

    System.out.println(map.get(iterator.next()));

 

}

 

entrySet()方法

 

Set<Map.Entry<Integer, String>> mapEntry = map.entrySet();for (Iterator<Map.Entry<Integer, String>> it = mapEntry.iterator(); it.hasNext();) {

    Map.Entry<Integer, String> m = it.next();

    Integer key = m.getKey();

    String value = m.getValue();

    System.out.println(key+"->"+value);

 

}

 

values()方法

 

同步是指只允许单一线程访问该对象
Map子类对象
Hashtable:哈希表,是同步的,不允许null键、null值
HashMap:哈希表,不同步,允许null键,null值
TreeMap:二叉树,不同步,可以对map集合中的键进行排序


练习——Map存取取出自定义类型
对象要复写hashCode()方法,保障键的唯一性

Map<Employee, String> map = new HashMap<Employee, String>();

map.put(new Employee(), "广东");for(Employee em: map.keySet()){

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

 

}


treeMap要实现comparable接口或者用comparator对象
hashMap要复写hashCode()方法

改成linkhashMap可以实现有序


什么时候使用map集合?
存在映射关系的。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程