package cn.sasa.demo3;

import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set; public class MapDemo {
public static void main(String[] args) {
/**
* Map集合 类似于 C#中的 Dictionary,存的是键值对集合,键不能重复
*
* Map接口的常用方法:
* Map接口的实现类:HashMap
*/
Map<Integer,String> map = new HashMap<Integer, String>();
//添加
map.put(1, "a");
var preObj = map.put(1, "b");//重复的键保存的是后面那个,返回被替换的值
var preObj1 = map.put(3, "a");
map.put(4, "c");
map.put(5, "u");
map.put(6, "t");
map.put(7, "e");
System.out.println(preObj); //a
System.out.println(preObj1); //null
System.out.println(map); //{1=b, 3=a, 4=c, 5=u, 6=t, 7=e} //取值
String mapStr1 = map.get(4);
//String mapStr1 = map.get(5); //如果不存在,返回null
System.out.println(mapStr1); //c //移除 返回被移除的对象
String maprev = map.remove(3);
System.out.println(maprev); //a System.out.println("=========================");
//遍历
//1、调用keySet,将所有的键存到Set集合中
//2、遍历Set集合
Set<Integer> inSet = map.keySet(); Iterator<Integer> it = inSet.iterator();
while(it.hasNext()) {
Integer key = it.next();
String val = map.get(key);
System.out.println(val);
} System.out.println("=========================");
for(var key : inSet) {
System.out.println(map.get(key));
} System.out.println("=========================");
//entrySet获取的是Entry对象的Set集合, 映射关系对象
//Entry是Map类中内部定义的一个接口 , 调用方式是Map.Entry
//interface Entry<K, V> {
Set<Map.Entry<Integer, String>> mset = map.entrySet();
Iterator<Map.Entry<Integer, String>> itmap = mset.iterator();
while(itmap.hasNext()) {
Map.Entry<Integer, String> mapent = itmap.next();
System.out.println(mapent.getKey() + "====" + mapent.getValue() );
} System.out.println("=========================");
for(Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "----" + entry.getValue());
} //=================LinkedHashMap================
//LinkedHashMap:保证迭代的顺序
LinkedHashMap<String, String> link = new LinkedHashMap<String, String>();
link.put("sa", "class1");
link.put("zz", "class2");
link.put("sxxa", "class3");
link.put("sacc", "class4");
System.out.println(link);
}
}

java 集合(五)MapDemo的更多相关文章

  1. Java集合(五)--LinkedList源码解读

    首先看一下LinkedList基本源码,基于jdk1.8 public class LinkedList<E> extends AbstractSequentialList<E> ...

  2. 【由浅入深理解java集合】(四)——集合 Queue

    今天我们来介绍下集合Queue中的几个重要的实现类.关于集合Queue中的内容就比较少了.主要是针对队列这种数据结构的使用来介绍Queue中的实现类. Queue用于模拟队列这种数据结构,队列通常是指 ...

  3. 【由浅入深理解java集合】(三)——集合 List

    第一篇文章中介绍了List集合的一些通用知识.本篇文章将集中介绍List集合相比Collection接口增加的一些重要功能以及List集合的两个重要子类ArrayList及LinkedList. 一. ...

  4. 【由浅入深理解java集合】(二)——集合 Set

    上一篇文章介绍了Set集合的通用知识.Set集合中包含了三个比较重要的实现类:HashSet.TreeSet和EnumSet.本篇文章将重点介绍这三个类. 一.HashSet类 HashSet简介 H ...

  5. 【由浅入深理解java集合】(一)——集合框架 Collction、Map

    本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. ...

  6. Java集合—Map

    简介 Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据.Map的key ...

  7. Java集合(一):Java集合概述

    注:本文基于JDK 1.7 1 概述 Java提供了一个丰富的集合框架,这个集合框架包括了很多接口.虚拟类和实现类. 这些接口和类提供了丰富的功能.可以满足主要的聚合需求. 下图就是这个框架的总体结构 ...

  8. Java集合(六)--ArrayList、LinkedList和Vector对比

    在前两篇博客,学习了ArrayList和LinkedList的源码,地址在这: Java集合(五)--LinkedList源码解读 Java集合(四)--基于JDK1.8的ArrayList源码解读 ...

  9. 【由浅入深理解java集合】(五)——集合 Map

    前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与Lis ...

  10. Java集合框架(Java总结五)

    ”https://www.runoob.com/java/” 集合接口区别 List 接口存储一组不唯一,有序(插入顺序)的对象,允许有相同的元素. Set 接口存储一组唯一,无序的对象,不保存重复的 ...

随机推荐

  1. Java8 中增强 Future:CompletableFuture

    增强的 Future:CompletableFuture CompletableFuture(它实现了 Future 接口) 和 Future 一样,可以作为函数调用的契约.当你向它请求获得结果,如果 ...

  2. 【原】关于AdaBoost的一些再思考

    一.Decision Stumps: Decision Stumps称为单层分类器,主要用作Ensemble Method的组件(弱分类器).一般只进行一次判定,可以包含两个或者多个叶结点.对于离散数 ...

  3. 深夜一次数据库执行SQL思考(怎么看执行报错信息)

    如下sql在执行时 DROP TABLE IF EXISTS `book`; CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, ` ...

  4. mysql+redis

    微博的系统架构,想用mysql+redis配合使用,具体操作步骤: 写入数据到Redis,,然后在写个运行cron的脚本,美妙读内存,并写入数据库即可. 使用注意: 1.MySQL使用需要注意的地方: ...

  5. [Hinton] Neural Networks for Machine Learning - Converage

    Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记 Ref: 神经网络训练中的Tricks之高效BP ...

  6. The last packet successfully received from the server was 20,519 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.

    本地升级了下MySQL的版本,从5.6升为5.7,数据文件直接拷贝的,项目查询数据库报错: Could not retrieve transation read-only status server ...

  7. KSQL和Flink SQL的比较

    Confluent公司于2017年11月宣布KSQL进化到1.0版本,标志着KSQL已经可以被正式用于生产环境.自那时起,整个Kafka发展的重心都偏向于KSQL——这一点可以从Confluent官方 ...

  8. linux下mysql 文件导入导出

    最近在做mysql的数据导入导出得到的一些经验,记录下. 1.首先要开通导入导出的功能,需要设置一个mysql的配置 可以在 my.conf 文件的最后增加配置项 secure-file-priv=' ...

  9. iOS - WKWebView加载不受信任的https (因用到IP地址加端口号去请求数据)

    1.描述:因公司域名临时出现问题,所以项目中引用到了IP地址加端口号去请求数据,因而造成在wkwebView中某些网址打不开,查看错误是因为服务器证书无效,实际就是不受信任; 2.解决办法:在plis ...

  10. 如何用Baas快速在腾讯云上开发小程序-系列3 :实现腾讯云COS API调用

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/640268001487425627 来源:腾云阁 h ...