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. tomcat 启动 证书异常java.io.IOException: Alias name [cas] does not identify a key entry

    在搭建CAS server的过程中,Tomcat开启https,配置秘钥证书,证书是通过keytool生成的 <Connector port=" protocol="org. ...

  2. Linux - 更改软件源

    镜像源 网易镜像源 在网易开源镜像页面,点击对应镜像名的使用帮助,可以查看到更新源的方法,按步骤操作即可. 阿里云镜像源 在阿里云开源镜像页面,点击对应Mirror分类的help标签,可以查看到更新源 ...

  3. 基于iview的后台管理

    年前由于时间紧迫,原本使用iview技术开发后台管理系统的大神另有任务,我中途接手该项目,此前对于iview一无所知的我是一脸的懵逼,好在后台管理的整体框架大神已经搭建好了,而我之前对vue也有一定的 ...

  4. Stack&&Queue

    特殊的容器:容器适配器 stack     queue     priority_queue:vector+堆算法---->优先级队列 stack:     1.栈的概念:特殊的线性结构,只允许 ...

  5. Flask 微博三方登录

    1.进入微博开发平台(https://open.weibo.com/),注册账号,填写开发者信息 2.创建应用.创建应用完成后,可以在"我的应用 - 应用信息"中查看您所创建应用的 ...

  6. DDD漫想

    领域专用语言 领域驱动设计(Domain Driver Design)开发中,最令我震撼的是领域专用语言(Domain specific language),领域专用语言专注于描述当前领域内的业务细节 ...

  7. Eclipse个人规范化设置

    为保证在各个在各个系统中获得的代码样式保持一致,规范法化开发,对Eclipse进行一些常用通用设置: 1. 代码块缩进 4个空格,如果使用 tab缩进,请设置成 1个 tab为 4个空格.(阿里巴巴开 ...

  8. 关于 OpenIdConnect 认证启用 HTTPS 回调 RedirectUri 不生效问题

    在搭建 IdentityServer 服务端后,我们尝试使用了 OIDC(OpenID Connect) 的中间件来代替了原先的 Session 系统认证方式,起初采用的是 HTTP 协议,一切都没有 ...

  9. Silverlight中使用MVVM(3)—进阶

    这篇主要引申出Command结合MVVM模式在应用程序中的使用 我们要做出的效果是这样的 就是提供了一个简单的查询功能将结果绑定到DataGrid中,在前面的基础上,这个部分相对比较容易实现了 我们在 ...

  10. 深入浅出zeptojs中tap事件

    1.tap事件实现 zepto 源码里面看关于tap的实现方法: $(document).ready(function(){ var now, delta, deltaX = 0, deltaY = ...