Map笔记:

import java.util.*;

/**一:Collection接口的
* Map接口: HashMap(主要实现类) : HashedMap / LinkedHashMap /TreeMap
* Map接口: <键,值>对, 重复的键会进行值得覆盖 ,输出顺序和放入顺序是不一定可以保持顺序的!
* 修改查询操作: 1.put(key, value), 2.remove(key) 3.putAll(其他map), 复制其他映射中的所有键值对;
* 4.get(key),返回指定的键key所映射的值; 5.containsKey(key) /containsValue() 存在指定的键/值,则返回true
*-----------------------------
* 集合视图方法:
* values()
* keySet()
* entrySet() :[Map.Entry 接口]四个方法:setValue(V value)/getKey()/getValue()/equals(o)
*------------------------------
* LinkedHashedMap 是HashMap类的子类,它保持键的顺序与插入的顺序一致!
* TreeMap 实现了 SortedMap的接口, SortedMap 接口能保证各项按照关键字升序进行排序(默认自然排序)
* 构造方法: TreeMap()/TreeMap(Comparator c)/TreeMap(SortedMap m)/TreeMap(Map m)
* --------------
* 二: 集合的输出
* 1.遍历key集 和value集 , Set keyset=mp3.keySet(); 然后使用加强的For循环即可!
* 2.遍历value集 , Collection vals= mp3.values(); 然后使用迭代器for遍历: Iterator i= vals.iterator();
* 3.//双向迭代器输出 :ListIterator it = all.listIterator() 正向/反向一波
* 4.遍历键值对!
*/

测试代码:

public class TestMap {
public static void main(String[] args) {
Map mp=new HashMap();
mp.put("AAA1",123);
mp.put("AAA1",1234);
mp.put("AAA2",124);
mp.put("AAA3",125);
System.out.println("-->"+mp.get("AAA1"));
System.out.println(mp); HashMap<String,Integer>ss=new HashMap<String,Integer>();
ss.putAll(mp);
System.out.println(ss); Map mp2=new LinkedHashMap();
mp2.put("AAA1",123);mp2.put("AAA1",1234);mp2.put("AAA2",124);
mp2.put("AAA3",125);
System.out.println(mp2+"----"+mp2.getClass()+"------"); Map mp3=new TreeMap();
mp3.put("AB",123);mp3.put("A",1234);
mp3.put("X",124);mp3.put("AX",125);
System.out.println(mp3+"----"+mp3.getClass()+"------");
//1.遍历key集
Set keyset=mp3.keySet();
for (Object o: keyset){
System.out.print(" "+o);
}
System.out.println();
//2.遍历value集
Collection vals= mp3.values();
Iterator i= vals.iterator();
while(i.hasNext())
System.out.print(" "+i.next());
System.out.println();
//3.遍历键值对,方式1:
Set st1=mp3.keySet();
for(Object o:st1)
System.out.print(o+"---->"+mp3.get(o)+" ");
System.out.println();
//方式2
Set st2=mp3.entrySet();
for(Object o:st2){
Map.Entry entry=(Map.Entry) o;
System.out.print(entry.getKey()+":"+entry.getValue()+" ");
}
//双向迭代器输出 :ListIterator 正向/反向一波
ArrayList<String> all=new ArrayList<String>();
all.add("Hello");all.add("__");all.add("World");
ListIterator it=all.listIterator();
System.out.println("\n先正着 ListIterator:");
while(it.hasNext())
System.out.print(" "+it.next());
System.out.println("\n再逆着返回回去 ListIterator:");
while(it.hasPrevious())
System.out.print(" "+it.previous());
}
}

测试结果:

-->1234
{AAA3=125, AAA1=1234, AAA2=124}
{AAA3=125, AAA1=1234, AAA2=124}
{AAA1=1234, AAA2=124, AAA3=125}----class java.util.LinkedHashMap------
{A=1234, AB=123, AX=125, X=124}----class java.util.TreeMap------
A AB AX X
1234 123 125 124
A---->1234 AB---->123 AX---->125 X---->124
A:1234 AB:123 AX:125 X:124
先正着 ListIterator:
Hello __ World
再逆着返回回去 ListIterator:
World __ Hello

Java基础 - Map接口的实现类 : HashedMap / LinkedHashMap /TreeMap 的构造/修改/遍历/ 集合视图方法/双向迭代输出的更多相关文章

  1. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  2. Java 基础 - Set接口 及其实现类HashSet/LinkedHashSet/TreeSet

    笔记: /**Set接口 及其实现类 * 公用操作同Collection: * * ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法 ...

  3. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  4. Java基础-DBCP连接池(BasicDataSource类)详解

    Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程 ...

  5. java基础-Map集合

    java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...

  6. JAVA ,Map接口 ,迭代器Iterator

    1.    Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...

  7. Java Core - Map接口

    Map:是一组映射The java.util.Map interface represents a mapping between a key and a value. The Map interfa ...

  8. java中map接口hashMap以及Enty之间的用法和关系

    java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...

  9. Java基础十--接口

    Java基础十--接口 一.接口的定义和实例 /* abstract class AbsDemo { abstract void show1(); abstract void show2(); } 8 ...

随机推荐

  1. vue路由传参的三种方式

    方式一 通过query方式传参 这种情况下 query传递的参数会显示在url后面 this.$router.push({ path: '/detail', query: { id: id } }) ...

  2. php utf8 gbk 数组 互转

    这些都是工作中常用的 前几年写过 但没有记录的习惯,后边有要用到麻烦,现在记录下 以后直接拿来用 数组里的 utf8_to_gbk 方法 是上一篇写的 直接调用 public static funct ...

  3. 用户登录时,禁止chrome提示用户保存密码

    将input的type=“password”改为type=“text” 在获得焦点后,将type改为password <input class="iptpsw form-control ...

  4. alertmanager的web页面显示UTC时间的问题

    1.http://192.168.1.144:9093/#/alerts 显示的告警时间是UTC时间 2.脚本的变量 {"status":"success"}[ ...

  5. ufile开公钥私钥

    https://docs.ucloud.cn/storage_cdn/ufile/guide/token登陆UCloud官方控制台,进入UFile—令牌管理

  6. react生成二维码

    图片实例: 简介: QRCode.js 是一个生成二维码的JS库.主要是通过获取 DOM 的节点,再通过 HTML5 Canvas 绘制而成,不依赖任何库. 用法: 1. 在项目中引入qrcode.m ...

  7. [转帖]linux下查找文件及查找包含指定内容的文件常用命令。

    linux下查找文件及查找包含指定内容的文件常用命令. https://blog.csdn.net/yangyu19910407/article/details/18266821 最简单的查找 fin ...

  8. (五)Respose 知识点总结 (来自那些年的笔记)

    目录 HttpServletResponse简介 向客户机写数据 HttpServletResponse应用 打印中文,让浏览器显示不乱码 : 下载文件 输出随机图片(验证码) 不要缓存 图片的src ...

  9. java虚拟机栈(关于java虚拟机内存的那些事)

    <深入理解 java 虚拟机> 读书扩展 作者:淮左白衣 写于 2018年4月13日16:26:51 目录 文章目录 java虚拟机栈是什么 特点 栈帧 局部变量表 什么时候抛出 `Sta ...

  10. 开源定时任务框架Quartz(一)

    简介 Quartz是OpenSymphony开源组织的一个开源项目,定时任务框架,纯Java语言实现,最新版本为2.3.0. 设计模式 Quartz中使用的设计模式如下: 1.Builder模式 2. ...