Map的主要实现类:

  --HashMap:Map的主要实现类(掌握)

  --LinkedHashMap:使用链表维护添加进Map中的顺序,遍历时按添加时的顺序遍历

  --TreeMap:按照添加进Map中的元素key的制定属性进行排序。(了解)、

  --Hashtable 古老的实现类不建议使用

    --Properties:常来处理属性文件,键和值都是String类型(掌握)

常用方法(不加泛型)

Map map = new HashMap<>();

//Object put(Object key,Object value) 向Map中添加一个元素

map.put("A",123);

map.put("B",456);

map.put("C",789);

//Object remove(Object key) 按照制定为key删除一条记录

map.remove("C");

//void putAll(Map t) 将t中的全部记录加入当前Map集合中

Map t = new HashMap<>();

t.put("D",741);

map.putAll(t);

//void clear() 清空Map中的记录

t.clear();

//Object get(Object key) 获取制定key值对应的value值,如果没有此key值则返回null

Object value = map.get("A");

//boolean containsKey(Object key) 是否包含key

boolean flag1 = map.containsKey("A");

//boolean containsValue(Object value) 是否包含value

boolean flag2 = map.containsValue("B");

//int size() 返回当前Map的长度

System.out.println(map.size());

//boolean isEmpty() 判断当前Map集合是否为空

System.out.println(map.isEmpty());

HashMap

1、Key使用Set集合存放,Key不可重复

2、Value使用Collection存放,可以重复

3、一个Key-Value对是一个Entry,Entry用Set存放不可重复。

4、向HashMap添加一个Key-Value记录,会调用Key所在类的equals()方法,判断Map中是否已存在相同Key的记录,如果有则覆盖之前的记录,存放最后一次存放的Key-Value记录

Map的遍历

一、遍历Key集

Set key = map.keySet();

for(Object obj:key){

  System.out.println(obj);

}

二、遍历Value集

Collection values = map.values();

Iterator iterator = values.iterator();

while(iterator.hasNext()){

  Syetem.out.println(iterator.next());

}

三、遍历key-value对

方式一、先遍历key集,再根据指定key得到对应value值

Set key = map.keySet();

for(Object obj:key){

  System.out.println(obj+"-"+map.get(obj));

}

方式二、通过Entry遍历

Set set2 = map.entrySet();

for(Object obj:set2){

  Map.Entry entry = (Entry)obj;

  System.out.println(entry.getKey()+"-"+entry.getValue());

}

方式三、

for(Object entry:map.entrySet()){

  Map.Entry et = (Entry) entry;

  System.out.println(et.getKey()+"-"+et.getValue());

}

使用Properties处理属性文件

public void testMap3() throws IOException{
  Properties properties = new Properties();
  // 加载属性文件
  properties.load(TestMap.class.getResourceAsStream("/jdbc.properties"));
  // 获取用户名和密码
  String user = properties.getProperty("user");
  String password = properties.getProperty("password");
  
  System.out.println(user);
  System.out.println(password);
 }

集合框架四(Map)的更多相关文章

  1. Java集合框架之map

    Java集合框架之map. Map的主要实现类有HashMap,LinkedHashMap,TreeMap,等等.具体可参阅API文档. 其中HashMap是无序排序. LinkedHashMap是自 ...

  2. 第19章 集合框架(3)-Map接口

    第19章 集合框架(3)-Map接口 1.Map接口概述 Map是一种映射关系,那么什么是映射关系呢? 映射的数学解释 设A,B是两个非空集合,如果存在一个法则,使得对A中的每一个元素a,按法则f,在 ...

  3. Java集合框架之Map接口浅析

    Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Col ...

  4. Java中的集合(十四) Map的实现类LinkedHashMap

    Java中的集合(十四) Map的实现类LinkedHashMap 一.LinkedHashMap的简介 LinkedHashMap是Map接口的实现类,继承了HashMap,它通过重写父类相关的方法 ...

  5. 【JAVA集合框架之Map】

    一.概述.1.Map是一种接口,在JAVA集合框架中是以一种非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map ...

  6. 浅谈集合框架四——集合扩展:集合循环输出方式及list输出方式的效率对比

    最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系 ...

  7. 十七、Java基础---------集合框架之Map

    前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...

  8. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  9. Java集合框架(四)

    Collections    集合框架的工具类    着重讲解以下方法: 1.sort(): 1º根据元素的自然顺序对指定列表按升序进行排序,列表中的所有元素都必须实现comparable接口. pu ...

  10. [黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)

    ---------------------- ASP.Net+Android+IO开发..Net培训.期待与您交流! ---------------------- 0. 集合框架按其所实现的接口, 大 ...

随机推荐

  1. Java Listener中Spring接口注入的使用

    在项目中使用Spring通常使用他的依赖注入可以很好的处理,接口与实现类之间的耦合性,但是通常的应用场景中都是Service层和DAO层,或者web层的话, 也是与Strust2来整合,那么如何在Li ...

  2. underscore.js源码研究(1)

    概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...

  3. 如何做好错误处理?(PHP篇)

    起因 之前我在封装 PHP 一个类库的时候,如果有遇到错误(例如构造函数传参不合法的话),则直接 die() ,后来发现这种方法很不好,会直接退出程序. 所以我想到给 PHP 上异常捕获的机制了. 错 ...

  4. 社会地位即服务, Status as a Service (二): 社交网络的投资回报率 (ROI)

    本文作者 Eugene Wei 是 Amazon 战略部门的第一位分析师,后来还担任过 Flipboard, Hulu, Oculus 的产品负责人. 原文标题是 Status as a Servic ...

  5. vue教程1-03 v-for循环

    vue教程1-03 v-for循环 v-for循环: v-for="name in arr" {{value}} {{$index}} v-for="name in js ...

  6. Python基础之好玩的字符串格式化之类C风格

    今天白月黑羽和大家说说字符串格式化,在python3中,字符串格式化主要有2种方法,今天先和大家介绍类C风格的printf. printf 风格 这种方式 和 传统的C语言printf函数使用一样的格 ...

  7. h5实现输入框fixed定位在屏幕最底部兼容性

    1.问题由来 做h5 已经有很长一段时间了,现在做的工作h5比pc上的更多,曾经解决pc端IE各个版本的兼容性也是伤透脑筋,原以为h5的会更好,殊不知,还有更头疼的问题,当设计师要设计一个聊天窗口,把 ...

  8. Spring mvc 4系列教程(二)——依赖管理(Dependency Management)和命名规范(Naming Conventions)

    依赖管理(Dependency Management)和命名规范(Naming Conventions) 依赖管理和依赖注入(dependency injection)是有区别的.为了将Spring的 ...

  9. docker-dockerfile使用

    使用 centos基础镜像, 构建dockerfile-ngix 简单说, 就是把需要做的东西写下来, 然后build的时候, 自动运行 一般包含:  基础镜像信息 维护者信息 镜像操作指令 容器启动 ...

  10. 《Netty权威指南》(一)走进 Java NIO

    目录 1.1 I/O 基础入门 1.1.1 Linux 网络 I/O 模型 1.1.2 I/O 多路复用技术 2. Java 的 I/O 演进   1.1 I/O 基础入门 Java1.4 之前的早期 ...