Java基础 - Map接口的实现类 : HashedMap / LinkedHashMap /TreeMap 的构造/修改/遍历/ 集合视图方法/双向迭代输出
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 的构造/修改/遍历/ 集合视图方法/双向迭代输出的更多相关文章
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java 基础 - Set接口 及其实现类HashSet/LinkedHashSet/TreeSet
笔记: /**Set接口 及其实现类 * 公用操作同Collection: * * ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法 ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础-DBCP连接池(BasicDataSource类)详解
Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程 ...
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
- Java Core - Map接口
Map:是一组映射The java.util.Map interface represents a mapping between a key and a value. The Map interfa ...
- java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...
- Java基础十--接口
Java基础十--接口 一.接口的定义和实例 /* abstract class AbsDemo { abstract void show1(); abstract void show2(); } 8 ...
随机推荐
- SQL 创建表
SQL 创建表是通过SQL CREATE TABLE 语句来实现,该语句是DDL SQL语句.CREATE TABLE语句用于创建用于存储数据的表.在创建表时,可以为列定义主键.惟一键和外键等完整性约 ...
- 【miscellaneous】GStreamer下的音视频播放
Gst-launch命令: gst-launch filesrc location=*.* ! demux name=demux demux.video_00 ! queue ! decoder ! ...
- SSRAM、SDRAM和Flash简要介绍
问题1:什么是DRAM.SRAM.SDRAM?答:名词解释如下DRAM--------动态随即存取器,需要不断的刷新,才能保存数据,而且是行列地址复用的,许多都有页模式SRAM--------静态的随 ...
- Oracle数据库四种数据完整性约束
Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...
- TypeScript 枚举
我们常常会有这样的场景,比如与后端开发约定订单的状态开始是0,未结账是1,运输中是2,运输完成是3,已收货是4.这样的纯数字会使得代码缺乏可读性.枚举就用于这样的场景.枚举可以让我们定义一些名字有意义 ...
- 记录学习Python的第一天
这是我的第一篇博客,也是我学Python的第一天. 写这篇博客主要目的是为了记下我学习Python的过程以及所学到的知识点.我所学的是Python3版本,我所学的内容有如下几点: 1.python3中 ...
- BOM与DOM的区别与联系
一.BOM与DOM的区别 1.BOM(Browser Object Model) BOM 即浏览器对象模型,BOM没有相关标准,BOM的最核心对象是window对象.window对象既为javascr ...
- 中国5级行政区域MySQL数据库库
爬取国家统计局官网的行政区域数据,包括省市县镇村5个层级,其中港澳地区的数据只有3级;台湾地区4级;包含大陆地区的邮政编码和经纬度信息. 行政划分的总体结构是: 省->市(州)->县(区) ...
- .NetCore如何使用ImageSharp进行图片的生成
ImageSharp是对NetCore平台扩展的一个图像处理方案,以往网上的案例多以生成文字及画出简单图形.验证码等方式进行探讨和实践. 今天我分享一下所在公司项目的实际应用案例,导出微信二维码图片, ...
- .net Core如何对静态文件的访问进行鉴权操作?
之前给公司开发了一个文件管理服务,最基本的功能就是文件的上传下载,以及更新删除.预览:负责公司各个子系统的相关附件的管理,所有的接口都通过AOP来进行身份拦截认证了,但是在进行预览的时候,因为采用的是 ...