p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Times }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Songti SC" }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times; min-height: 14.0px }
li.li2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Songti SC" }
li.li3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times }
li.li4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times; min-height: 14.0px }
li.li5 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px Times }
li.li6 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px "Songti SC" }
li.li7 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px Times; min-height: 14.0px }
span.s1 { font: 12.0px "Songti SC" }
span.s2 { font: 12.0px Times }
span.s3 { font: 24.0px Times; color: #4e9072 }
span.Apple-tab-span { white-space: pre }
ul.ul1 { list-style-type: disc }

Map集合

Map接口概述:

  Java.util.Map<k,v>接口:是一个双列集合

  Map集合的特点:

  • 是一个双列集合,有两个泛型key和value,使用的时候key和value的数据类型可 以相同。也可以不同
  • Key不允许重复的,value可以重复的;
  • 一个key只能对应一个value

Map常用实现类概述:

  Java.util.HashMap<k,v> 集合implements Map<k,v>接口

  HashMap集合的特点:

  • 底层是一个哈希表(数组+单向链表):查询快,增删快
  • 是一个无序集合

Map接口中的常用方法:

  • 1.V   get(key)  根据key值返回对应的value值,key值不存在则返回null
  • 2.V  put(key , value); 往集合中添加元素(key和value)
    •   注意:添加的时候,如果key不存在,返回值null
    •   如果Key已经存在的话,就会新值替换旧值,返回旧值
  • 3. V  remove(key); 删除key值对应的键值对;如果key不存在 ,删除失败。返回值为 null,如果key存在则删除成功,返回值为删除的value

Map遍历方式

  • 第一种方式:通过key找value的方式:

    Map中有一个方法:

      Set <k>  keySet();  返回此映射包含的键的Set 集合

     操作步骤:

    1.调用Map集合的中方法keySet,把Map集合中所有的健取出来,存储到Set集合中

    2.遍历Set集合,获取Map集合中的每一个健

    3.通过Map集合中的方法get(key),获取value值

   可以使用迭代器跟增强for循环遍历

  第二种方式:Map集合遍历键值方式

    Map集合中的一个方法:

    Set<Map.Entry<k,v>> entrySet(); 返回此映射中包含的映射关系的Set视图

  使用步骤

    * 1.使用Map集合中的方法entrySet,把键值对(键与值的映射关系),取出来存储到Set 集合中

    * 2.遍历Set集合,获取每一个Entry对象

    * 3.使用Entry对象中的方法getKey和getValue获取健和值

  可以使用迭代器跟增强for循环遍历

HashMap存储自定义类型:

  使用HashMap储存自定义类形式,因为要保证key的唯一性。需要自定义类重写 hashCode()跟equals()方法;

LinkedHashMap

  Java.util.LinkedHashMap<k,v> 集合extends HashMap<k,v> implements Map<k,v>

  特点:

    1.底层是一个哈希表(数组+单向链表)+链表

    2.是一个有序集合

Hashtable

  Map 的实现类 Hashtable

    底层数据结构是哈希表,特点和 hashMap 是一样的

    Hashtable 是线程安全的集合,是单线程的,运行速度慢

    HashMap 是线程不安全的集合,是多线程的,运行速度快

    Hashtable 命运和 Vector 是一样的,从 JDK1.2 开始,被更先进的 HashMap 取代

     HashMap 允许存储 null 值,null 健

    Hashtable 不允许存储 null 值,null 健

     Hashtable 他的孩子,子类 Properties 依然活跃在开发舞台

Properties

Java.util.Properties 集合extends Hashtable<k,v> 集合

Properties 集合特点:

  • Properties集合也是一个双列集合,key跟value都已经被内置为String类型
  • Properties集合是一个唯一和IO流相结合的集合
  • 可以将集合中存储的临时数据,持久化到硬盘的文件中储存
  • 可以把文件中储存对的键值对,读取到集合中使用

  Properties集合的基本操作:添加数据,遍历集合

    Key和value都已经被内置为String类型。里面包含了一些和String类的相关方法

  1. Object setProperty(String key ,String value) 往集合中添加键值对,调用Hashtable的方法put添加
  2. String getProperty(String key ) ,通过key获取value的值,相当于Map集合中的get(key) 方法
  3. Set<String >   stringPropertyNames()返回此属性列表的键集。相当于Map集合中的keySet()方法;

  Properties类的load方法:

    可以把文件中存储的键值对,读取到集合中使用

  1. void load(Reader reader)
  2. void load(InputStream inStream)
  • * 参数:
  • Reader reader:字符输入流,可以使用FileReader
  • InputStream inStream:字节输入流,可以使用FileInputStream
  • *
  • * 操作步骤:
  • 1.创建Properties集合对象
  • 2.创建字符输入流FileReader对象,构造方法中绑定要读取的数据源
  • 3.使用Properties集合中的方法load,把文件中存储的键值对,读取到集合中使 用
  • 4.释放资源
  • 5.遍历Properties集合
  • *
  • * 注意:
  • 1.流使用Reader字符流,可以读取中文数据
  • 2.流使用InputStream字节流,不能操作中文,会有乱码
  • 3.Properties集合的配置文件中,可以使用注释单行数据,使用#
  • 4.Properties集合的配置文件中,key和value默认都是字符串,不用添加""(画蛇 添足)
  • 5.Properties集合的配置文件中,key和value的连接符号可以使用=,也可以使用 空格

Properties类的store方法使用:

/*

* 可以把集合中存储的临时数据,持久化都硬盘的文件中存储

* void store(Writer writer, String comments)

* void store(OutputStream out, String comments)

* 参数:

*  Writer writer:字符输出流,可以使用FileWriter

*  OutputStream out:字节输出流,可以使用FileOutputStream

*  String comments:注释,解释说明存储的文件,不能使用中文(乱码),默认编码格式为 Unicode编码

* 可以使用""空字符串

* 操作步骤:

* 1.创建Properties集合,往集合中添加数据

* 2.创建字符输出流FileWriter对象,构造方法中绑定要写入的目的地

* 3.调用Properties集合中的方法store,把集合中存储的临时数据,持久化都硬盘的文 件中存储

* 4.释放资源

*

* 注意:

* 1.流使用Writer字符流,可以写入中文数据的

* 2.流使用OutputStream字节流,不能操作中文,会有乱码

* 3.Propertie集合存储的文件,一般都以.properties结尾(程序员默认)

方法的可变参数

  Jdk1.5 之后出现的新特性

  作用:

    定义方法时,方法参数的类型确定,但是个数不确定,可以使用可变参数

  格式:

    修饰符  返回值类型  方法名(数据类型...变量名){

    }

  使用注意:

    •   可变参数的底层原理就是一个数组
    •   传递不同个数的参数,会创建不同长度的数组,接收这些参数可变参数的方法,调用的时候,可以不传递参数,传递任意个参数

  注意事项:

  1. 一个方法的参数,只能定义一个可变参数
  2. 如果方法的参数有多个,那么可变参数必须写在列表的最后一位

Collections集合工具类

  Java.util.Collections 集合工具类

  Collections私有了无参构造方法,里面的方法全是静态的,通过类名可以直接使用

  Collections 常用方法:

    1. static void shuffle(List<?> list) 使用默认随机源对指定列表进行置换,(打乱集合中元素的顺序)

    2.static void sort(List<?> list ) 根据元素的自然顺序,对指定列表按照升序进行排序(对集合进行升序排序)

java学习笔记—集合之Map集合的更多相关文章

  1. Java学习笔记24(Map集合)

    Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对). ...

  2. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  3. Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

    package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...

  4. Android(java)学习笔记104:Map集合的遍历之键找值

    package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...

  5. Android(java)学习笔记103:Map集合的获取功能

    package cn.itcast_01; import java.util.Collection; import java.util.HashMap; import java.util.Map; i ...

  6. Android(java)学习笔记102:Map集合功能概述

    下面通过代码引入Map集合:如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生来说,是 ...

  7. Android(java)学习笔记44:Map集合的遍历之键值对对象找键和值

    1. Map集合的遍历之 键值对对象找 键和值: package cn.itcast_01; import java.util.HashMap; import java.util.Map; impor ...

  8. Android(java)学习笔记43:Map集合的遍历之键找值

    1. Map集合的遍历之键找值  package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.u ...

  9. Android(java)学习笔记42:Map集合的获取功能

    1. Map集合的获取功能:  package cn.itcast_01; import java.util.Collection; import java.util.HashMap; import ...

  10. Android(java)学习笔记41:Map集合功能概述

    1. 下面通过代码引入Map集合: 如下 package cn.itcast_01; import java.util.HashMap; import java.util.Map; /* * 作为学生 ...

随机推荐

  1. [转载]ACM搜索算法总结(总结)

    原文地址:ACM搜索算法总结(总结)作者:GreenHand 搜索是ACM竞赛中的常见算法,本文的主要内容就是分析它的 特点,以及在实际问题中如何合理的选择搜索方法,提高效率.文章的第一部分首先分析了 ...

  2. 暑假练习赛 006 E Vanya and Label(数学)

    Vanya and LabelCrawling in process... Crawling failed Time Limit:1000MS     Memory Limit:262144KB    ...

  3. css超过一定长度显示省略号

    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;

  4. zepto在操作dom的selected和checked属性时尽量使用prop方法

    zepto在操作dom的selected和checked属性时尽量使用prop方法.

  5. Java IO编程全解(六)——4种I/O的对比与选型

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7804185.html 前面讲到:Java IO编程全解(五)--AIO编程 为了防止由于对一些技术概念和术语 ...

  6. Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器

    初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在  笔记 在pl/sql中可以继续使用的sql关键字有:update del ...

  7. JavaScript系列-----对象基于哈希存储(<Key,Value>之Value篇) (3)

    JavaScript系列-----Objectj基于哈希存储<Key,Value>之Value 1.问题提出 在JavaScript系列-----Object之基于Hash<Key, ...

  8. [深度学习]实现一个博弈型的AI,从五子棋开始(1)

    好久没有写过博客了,多久,大概8年???最近重新把写作这事儿捡起来……最近在折腾AI,写个AI相关的给团队的小伙伴们看吧. 搞了这么多年的机器学习,从分类到聚类,从朴素贝叶斯到SVM,从神经网络到深度 ...

  9. Java面试之框架篇(九)

    spring现在无疑是Java中最火的框架,使用范围广,几乎每个公司面试都会涉及spring和数据库,你可以对Struts不熟悉,但一定不能表现出对spring不了解.第九篇赢在面试全篇介绍sprin ...

  10. gulp基础操作实践

    按照gulp中文文档对gulp基础操作的一些实践练习,记录以防忘掉. 一,选择并输出文件:gulp.src(globs[,options]) eg:gulp.src('src/less/index.l ...