集合框架四(Map)
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)的更多相关文章
- Java集合框架之map
Java集合框架之map. Map的主要实现类有HashMap,LinkedHashMap,TreeMap,等等.具体可参阅API文档. 其中HashMap是无序排序. LinkedHashMap是自 ...
- 第19章 集合框架(3)-Map接口
第19章 集合框架(3)-Map接口 1.Map接口概述 Map是一种映射关系,那么什么是映射关系呢? 映射的数学解释 设A,B是两个非空集合,如果存在一个法则,使得对A中的每一个元素a,按法则f,在 ...
- Java集合框架之Map接口浅析
Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Col ...
- Java中的集合(十四) Map的实现类LinkedHashMap
Java中的集合(十四) Map的实现类LinkedHashMap 一.LinkedHashMap的简介 LinkedHashMap是Map接口的实现类,继承了HashMap,它通过重写父类相关的方法 ...
- 【JAVA集合框架之Map】
一.概述.1.Map是一种接口,在JAVA集合框架中是以一种非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map ...
- 浅谈集合框架四——集合扩展:集合循环输出方式及list输出方式的效率对比
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系 ...
- 十七、Java基础---------集合框架之Map
前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...
- Java集合框架中Map接口的使用
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...
- Java集合框架(四)
Collections 集合框架的工具类 着重讲解以下方法: 1.sort(): 1º根据元素的自然顺序对指定列表按升序进行排序,列表中的所有元素都必须实现comparable接口. pu ...
- [黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)
---------------------- ASP.Net+Android+IO开发..Net培训.期待与您交流! ---------------------- 0. 集合框架按其所实现的接口, 大 ...
随机推荐
- tomcat 启动 证书异常java.io.IOException: Alias name [cas] does not identify a key entry
在搭建CAS server的过程中,Tomcat开启https,配置秘钥证书,证书是通过keytool生成的 <Connector port=" protocol="org. ...
- Linux - 更改软件源
镜像源 网易镜像源 在网易开源镜像页面,点击对应镜像名的使用帮助,可以查看到更新源的方法,按步骤操作即可. 阿里云镜像源 在阿里云开源镜像页面,点击对应Mirror分类的help标签,可以查看到更新源 ...
- 基于iview的后台管理
年前由于时间紧迫,原本使用iview技术开发后台管理系统的大神另有任务,我中途接手该项目,此前对于iview一无所知的我是一脸的懵逼,好在后台管理的整体框架大神已经搭建好了,而我之前对vue也有一定的 ...
- Stack&&Queue
特殊的容器:容器适配器 stack queue priority_queue:vector+堆算法---->优先级队列 stack: 1.栈的概念:特殊的线性结构,只允许 ...
- Flask 微博三方登录
1.进入微博开发平台(https://open.weibo.com/),注册账号,填写开发者信息 2.创建应用.创建应用完成后,可以在"我的应用 - 应用信息"中查看您所创建应用的 ...
- DDD漫想
领域专用语言 领域驱动设计(Domain Driver Design)开发中,最令我震撼的是领域专用语言(Domain specific language),领域专用语言专注于描述当前领域内的业务细节 ...
- Eclipse个人规范化设置
为保证在各个在各个系统中获得的代码样式保持一致,规范法化开发,对Eclipse进行一些常用通用设置: 1. 代码块缩进 4个空格,如果使用 tab缩进,请设置成 1个 tab为 4个空格.(阿里巴巴开 ...
- 关于 OpenIdConnect 认证启用 HTTPS 回调 RedirectUri 不生效问题
在搭建 IdentityServer 服务端后,我们尝试使用了 OIDC(OpenID Connect) 的中间件来代替了原先的 Session 系统认证方式,起初采用的是 HTTP 协议,一切都没有 ...
- Silverlight中使用MVVM(3)—进阶
这篇主要引申出Command结合MVVM模式在应用程序中的使用 我们要做出的效果是这样的 就是提供了一个简单的查询功能将结果绑定到DataGrid中,在前面的基础上,这个部分相对比较容易实现了 我们在 ...
- 深入浅出zeptojs中tap事件
1.tap事件实现 zepto 源码里面看关于tap的实现方法: $(document).ready(function(){ var now, delta, deltaX = 0, deltaY = ...