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. HTML 5 全局 contenteditable 属性

    contenteditable 可以将标签设置为可输入的input,textarea, 但是在ios上,点击或者点击很久input输入框才出来,兼容ios的方法是加一个   -webkit-user- ...

  2. sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,

    本数据源来自 https://www.kafan.cn/edu/922556.html  目的为了备忘 把原来的sql server 2005直接装成了2012,然后在建立链接服务器链接一台sql s ...

  3. sql根据时间戳按年月日分组统计

    sql根据时间戳按年月日分组统计,用于按日期分类: create_time为时间格式(字段名create_time 根据自己表字段修改,数据库中存为201610071202) SELECT DATE_ ...

  4. oj上的测试点信息

    Accepted                          通过!(AC) Wrong Answer                  答案错.(WA) Runtime Error      ...

  5. GPIO 输出—使用固件库点亮 LED

    编程要点 1. 使能 GPIO 端口时钟:  2. 初始化 GPIO 目标引脚为推挽输出模式:  3. 编写简单测试程序,控制 GPIO 引脚输出高.低电平. LED的电路图 过程: 1.拷贝一个库函 ...

  6. Redis的AOF重写脚本

    手动触发 每天定期的去执行一次 写了一个脚本 bgrewriteaof.sh 内容如下: #!/bin/bash /usr/local/redis/redis-cli -p 6379 -h 127.0 ...

  7. 消息队列ActiveMQ

    什么是ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管 ...

  8. 『Python基础练习题』day02

    1.判断下列逻辑语句的True, False 1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2) ...

  9. Lucene全文检索_分词_复杂搜索_中文分词器

    1 Lucene简介 Lucene是apache下的一个开源的全文检索引擎工具包. 1.1 全文检索(Full-text Search)  1.1.1 定义 全文检索就是先分词创建索引,再执行搜索的过 ...

  10. List 集合的常用方法总结

    @org.junit.Test public void testListToCompare() { List<String> list1 = new ArrayList<>() ...