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. [ModemManger]ModemManger的取消

    http://www.linux-databook.info/?page_id=3748 systemctl disable ModemManager.service 失能ModemManger从而取 ...

  2. Entlib DAAB映射枚举类型

    1. IRowMapper<UserDto> addressMapper = MapBuilder<UserDto> .MapAllProperties() .Map(p =& ...

  3. Java知多少(1) 语言概述

    Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初主要应用在小型消费电子产品上,后来随着互联网的兴起,Java ...

  4. 运维监控系统之Open-Falcon

    一.Open-Falcon介绍 1.监控系统,可以从运营级别(基本配置即可),以及应用级别(二次开发,通过端口进行日志上报),对服务器.操作系统.中间件.应用进行全面的监控,及报警,对我们的系统正常运 ...

  5. [algorithm] Dijkstra双栈算法表达式求值算法

    一.原理 Dijkstra所做的一个算法,双栈求值,用两个栈(一个保存运算符,一个用于保存操作数), 表达式由括号,运算符和操作数组成. (1).将操作数压入操作数栈 (2).将运算符压入运算符栈: ...

  6. 服务器虚拟化ESXi 5.5安装过程

    研究服务器虚拟化实践小结: 实验服务器硬件: 主板 华硕P8B-C/2L CPU Intel Xeon E3-1230 V2 3.3GHz RAM 8G ECC 1600MHz 硬盘 2T 2块 软件 ...

  7. css - Grid网格布局

    .wrapper{ display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 1 ...

  8. JQuery EasyUI DataGrid获取当前行

    1.获取当前行索引 var rowIndex = $('#dg').datagrid('getRowIndex', row); 2.根据索引删除当前行 $('#dg').datagrid('delet ...

  9. Flask web开发之路五

    Jinjia2模板 紧接着上篇博客,接下去写if条件判断和for循环遍历以及过滤器 if条件判断 主app文件代码: from flask import Flask,render_template a ...

  10. 将数据 导出excel表格式

    我的考试完提交生成的数据 这是我的考试题类型 //导出调查评议的数据 public function diaocha(){ $xlsName = '表格形式 调查评议 信息'; $xlsTitle = ...