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. DSP VLIB实验

    声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言 在dsp开发中,为了节省开发时间和难度,TI将一些成熟的算法封装为模块,供开发者使用.如果能充分利用这些 ...

  2. [转帖][思路/技术]Mimikatz的多种攻击方式以及防御方式

    [思路/技术]Mimikatz的多种攻击方式以及防御方式 https://bbs.ichunqiu.com/thread-53954-1-1.html 之前学习过 抄密码 没想到还有这么多功能.   ...

  3. 获取Android手机日志

    方式一:使用USB连接 1.在手机上启用USB调试2.在终端输入adb devices 3.获取日志 只连接一个设备:1)清除已缓存日志:adb logcat -c2)获取日志并保存到本地:adb l ...

  4. Docker 部署Jira8.1.0

    Jira与Confluence一样,都需要用到独立的数据库,对于数据库的安装我们不做介绍,主要介绍如何用Docker部署Jira以及对Jira进行破解的操作. 1.数据库准备 关于数据库官方文档说明: ...

  5. 在Ubuntu中安装了MongoDB后无法启动mongod的问题

    今天准备学习MongoDB,没想到下载之后服务器端启动不了,记录一下问题和处理过程 一.安装 在Ubuntu中安装还是很简单,直接:sudo apt install mongodb 二.启动 启动Mo ...

  6. 【坑】Mybatis 多次逆向工程生成mapper文件

    在使用 mybatis 逆向工程的时候,多次逆向工程生成的文件,是不会产生覆盖的,而是追加: 假如,你第一次逆向,发生数据库的某个字段类型错了,修改以后再次逆向,那么得到的 mapper文件,将是 2 ...

  7. WUSTOJ 1889: 编辑距离(Java)

    转自:

  8. WUSTOJ 1208: 计算整数四则运算表达式的结果(Java)

    1208: 计算整数四则运算表达式的结果 参考资料 数据结构(C语言版)严蔚敏 吴伟民 编著----表达式求值 题目   简单四则运算.更多内容点击标题. 保证表达式合法. 运算符只包含:加(+),减 ...

  9. Python之字符与编码笔记

    概述 类型 str 字符串 bytes 字节 bytearray 字节数组 字符串编码架构 字符集:赋值一个编码到某个字符,以便在内存中表示 编码 Ecoding:转换字符到原始字节形式 解码 Dec ...

  10. PHP的 parse_ini_file 解析配置文件

    解析配置文件: parse_ini_file 类似解析php.ini文件样 配置文件内容如下: Example #1 sample.ini 的内容 ; This is a sample configu ...