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. SQL 创建表

    SQL 创建表是通过SQL CREATE TABLE 语句来实现,该语句是DDL SQL语句.CREATE TABLE语句用于创建用于存储数据的表.在创建表时,可以为列定义主键.惟一键和外键等完整性约 ...

  2. 【miscellaneous】GStreamer下的音视频播放

    Gst-launch命令: gst-launch filesrc location=*.* ! demux name=demux demux.video_00 ! queue ! decoder ! ...

  3. SSRAM、SDRAM和Flash简要介绍

    问题1:什么是DRAM.SRAM.SDRAM?答:名词解释如下DRAM--------动态随即存取器,需要不断的刷新,才能保存数据,而且是行列地址复用的,许多都有页模式SRAM--------静态的随 ...

  4. Oracle数据库四种数据完整性约束

     Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...

  5. TypeScript 枚举

    我们常常会有这样的场景,比如与后端开发约定订单的状态开始是0,未结账是1,运输中是2,运输完成是3,已收货是4.这样的纯数字会使得代码缺乏可读性.枚举就用于这样的场景.枚举可以让我们定义一些名字有意义 ...

  6. 记录学习Python的第一天

    这是我的第一篇博客,也是我学Python的第一天. 写这篇博客主要目的是为了记下我学习Python的过程以及所学到的知识点.我所学的是Python3版本,我所学的内容有如下几点: 1.python3中 ...

  7. BOM与DOM的区别与联系

    一.BOM与DOM的区别 1.BOM(Browser Object Model) BOM 即浏览器对象模型,BOM没有相关标准,BOM的最核心对象是window对象.window对象既为javascr ...

  8. 中国5级行政区域MySQL数据库库

    爬取国家统计局官网的行政区域数据,包括省市县镇村5个层级,其中港澳地区的数据只有3级;台湾地区4级;包含大陆地区的邮政编码和经纬度信息. 行政划分的总体结构是: 省->市(州)->县(区) ...

  9. .NetCore如何使用ImageSharp进行图片的生成

    ImageSharp是对NetCore平台扩展的一个图像处理方案,以往网上的案例多以生成文字及画出简单图形.验证码等方式进行探讨和实践. 今天我分享一下所在公司项目的实际应用案例,导出微信二维码图片, ...

  10. .net Core如何对静态文件的访问进行鉴权操作?

    之前给公司开发了一个文件管理服务,最基本的功能就是文件的上传下载,以及更新删除.预览:负责公司各个子系统的相关附件的管理,所有的接口都通过AOP来进行身份拦截认证了,但是在进行预览的时候,因为采用的是 ...