java 集合(五)MapDemo
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的更多相关文章
- Java集合(五)--LinkedList源码解读
首先看一下LinkedList基本源码,基于jdk1.8 public class LinkedList<E> extends AbstractSequentialList<E> ...
- 【由浅入深理解java集合】(四)——集合 Queue
今天我们来介绍下集合Queue中的几个重要的实现类.关于集合Queue中的内容就比较少了.主要是针对队列这种数据结构的使用来介绍Queue中的实现类. Queue用于模拟队列这种数据结构,队列通常是指 ...
- 【由浅入深理解java集合】(三)——集合 List
第一篇文章中介绍了List集合的一些通用知识.本篇文章将集中介绍List集合相比Collection接口增加的一些重要功能以及List集合的两个重要子类ArrayList及LinkedList. 一. ...
- 【由浅入深理解java集合】(二)——集合 Set
上一篇文章介绍了Set集合的通用知识.Set集合中包含了三个比较重要的实现类:HashSet.TreeSet和EnumSet.本篇文章将重点介绍这三个类. 一.HashSet类 HashSet简介 H ...
- 【由浅入深理解java集合】(一)——集合框架 Collction、Map
本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. ...
- Java集合—Map
简介 Map用户保存具有映射关系的数据,因此Map集合里保存着两组数,一组值用户保存Map里的key,另一组值用户保存Map里的value,key和value都可以是任何引用类型的数据.Map的key ...
- Java集合(一):Java集合概述
注:本文基于JDK 1.7 1 概述 Java提供了一个丰富的集合框架,这个集合框架包括了很多接口.虚拟类和实现类. 这些接口和类提供了丰富的功能.可以满足主要的聚合需求. 下图就是这个框架的总体结构 ...
- Java集合(六)--ArrayList、LinkedList和Vector对比
在前两篇博客,学习了ArrayList和LinkedList的源码,地址在这: Java集合(五)--LinkedList源码解读 Java集合(四)--基于JDK1.8的ArrayList源码解读 ...
- 【由浅入深理解java集合】(五)——集合 Map
前面已经介绍完了Collection接口下的集合实现类,今天我们来介绍Map接口下的两个重要的集合实现类HashMap,TreeMap.关于Map的一些通用介绍,可以参考第一篇文章.由于Map与Lis ...
- Java集合框架(Java总结五)
”https://www.runoob.com/java/” 集合接口区别 List 接口存储一组不唯一,有序(插入顺序)的对象,允许有相同的元素. Set 接口存储一组唯一,无序的对象,不保存重复的 ...
随机推荐
- 初识Spring Security
本文参考或者转自:http://haohaoxuexi.iteye.com/blog/2154299 1.新建Spring Security配置文件spring-security.xml:<?x ...
- 聊聊Python中的闭包和装饰器
1. 闭包 首先我们明确一下函数的引用,如下所示: def test1(): print("--- in test1 func----") # 调用函数 test1() # 引用函 ...
- 聊聊动态语言那些事(Python)
动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用.它是一类在运行时可以改变其结构的语言:例如新的函数.对象.甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化.动态语言 ...
- Java知多少(86)文本框和文本区的输入输出
在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...
- Java知多少(89)列表和组合框
有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...
- SpringBoot自定义错误信息,SpringBoot适配Ajax请求
SpringBoot自定义错误信息,SpringBoot自定义异常处理类, SpringBoot异常结果处理适配页面及Ajax请求, SpringBoot适配Ajax请求 ============== ...
- 【中间件安全】IIS7.0 安全加固规范
1. 适用情况 适用于使用IIS7进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...
- C++定义字符数组
问:C++中定义字符型数组时'\0'是不是也占一位?是不是定义char a[5],只能有4个字符?那计算字符长度时又否忽略'\0'? 答: C++中定义字符型数组时'\0'是不是也占一位?是不是定义c ...
- Java实现五子棋
代码: package com.hotusm.datastructure.list; import com.hotusm.datastructure.Log; /** * @author luqiba ...
- Android Studio设置代理,解决检查更新gradle信息的问题
Android Studio是基于JetBrains公司的IDEA开发的,Android Studio里的项目都是由Gradle构建的,Gradle集合了Ant和Maven的优点,又解决了他们的缺点, ...