Map接口概述,  Map集合的特色

Map集合

Map集合

Map接口概述:

Map接口概述:

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

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

  Map集合的表征:

  Map集合的特征:

  • 是壹个双列集合,有五个泛型key和value,使用的时候key和value的数据类型可
    以同等。也可以差距
  • Key不一致意再度的,value可以重复的;
  • 一个key只可以对应多少个value
  • 是二个双列集合,有多少个泛型key和value,使用的时候key和value的数据类型可
    以相同。也可以不一样
  • Key不一致意再次的,value可以重复的;
  • 一个key只好对应1个value

 

 

Map常用完结类概述:

Map常用已毕类概述:

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

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

  HashMap集合的特色:

  HashMap集合的表征:

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

 

 

Map接口中的常用方法:

Map接口中的常用方法:

  • 1.V   get(key)  依照key值重返对应的value值,key值不设有则赶回null
  • 2.V  put(key , value); 往集合中添日元素(key和value)
  • 1.V   get(key)  依据key值重返对应的value值,key值不存在则赶回null
  • 2.V  put(key , value); 往集合中添欧成分(key和value)

    •   注意:添加的时候,如若key不存在,重回值null
    •   倘使Key已经存在的话,就会新值替换旧值,重返旧值
    1. V  remove(key); 删除key值对应的键值对;即使key不设有 ,删除失利。重返值为 null,如若key存在则删除成功,重临值为除去的value
    •   注意:添加的时候,如若key不设有,重返值null
    •   即便Key已经存在的话,就会新值替换旧值,重临旧值
    1. V  remove(key); 删除key值对应的键值对;如若key不设有 ,删除战败。再次来到值为 null,假若key存在则删除成功,再次回到值为除去的value

 

 

Map遍历格局

Map遍历格局

  • 率先种办法:通过key找value的格局:
  • 首先种方法:通过key找value的办法:

    Map中有多个格局:

    Map中有三个办法:

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

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

     操作步骤:

     操作步骤:

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

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

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

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

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

 
    3.由此Map集合中的法子get(key),获取value值

   可以接纳迭代器跟增强for循环遍历

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

 

 

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

  第一种办法:Map集合遍历键值格局

    Map集合中的七个主意:

    Map集合中的一个艺术:

    Set<Map.Entry<k,v>> entrySet();
重临此映射中包括的映射关系的Set视图

    Set<Map.Entry<k,v>> entrySet();
再次来到此映射中包涵的投射关系的Set视图

  使用手续

  使用手续

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

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

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

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

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

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

  可以接纳迭代器跟增强for循环遍历

  能够行使迭代器跟增强for循环遍历

 

 

 

 

HashMap存储自定义类型:

HashMap存储自定义类型:

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

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

 

 

LinkedHashMap

LinkedHashMap

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

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

  特点:

  特点:

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

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

    2.是三个静止聚集

    2.是1个一如既往聚集

 

 

Hashtable

Hashtable

  Map 的兑现类 Hashtable

  Map 的落实类 Hashtable

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

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

     Hashtable 是线程安全的聚集,是单线程的,运转速度慢

     Hashtable 是线程安全的聚众,是单线程的,运转速度慢

     HashMap 是线程不安全的聚合,是三十二线程的,运营速度快

     HashMap 是线程不安全的汇集,是多线程的,运维速度快

 

 

     Hashtable 命局和 Vector 是同等的,从 JDK1.2 开始,被更上进的 HashMap 取代

     Hashtable 时局和 Vector 是均等的,从 JDK1.2 初叶,被更进步的 HashMap 取代

 

 

     HashMap 允许存储 null 值,null

     HashMap 允许存储 null 值,null

     Hashtable 不容许存储 null 值,null 健

     Hashtable 不允许存储 null 值,null 健

 

 

     Hashtable 他的子女,子类
Properties 如故活泼在付出舞台

     Hashtable 他的男女,子类
Properties 照旧活泼在付出舞台

 

 

 

 

 

 

Properties

Properties

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

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

Properties 集合特点:

Properties 集合特点:

  • Properties集合也是3个双列集合,key跟value都已经被平放为String类型
  • Properties集合是1个唯一和IO流相结合的集结
  • Properties集合也是八个双列集合,key跟value都已经被内置为String类型
  • Properties集合是壹个唯一和IO流相结合的聚合

  • 可以将集结中存储的权且数据,持久化到硬盘的公文中蕴藏
  • 可以把文件中储存对的键值对,读取到集结中接纳
  • 能够将集纳中贮存的一时半刻数据,持久化到硬盘的文本中蕴藏
  • 可以把公文中储存对的键值对,读取到聚集中动用

 

 

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

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

    Key和value都已经被放到为String类型。里面含有了有的和String类的连带措施

    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()方法;
  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方法:

  Properties类的load方法:

    可以把公文中贮存的键值对,读取到聚集中采取

    可以把公文中储存的键值对,读取到集结中应用

  1. void load(Reader reader)  
  2. void load(InputStream inStream)  
  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的接连符号可以应用=,也得以利用 空格
  • * 参数:
  • 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方法应用:

Properties类的store方法应用:

/*

/*

*
可以把集合中储存的暂且数据,持久化都硬盘的文本中存储

*
可以把集合中存储的目前数据,持久化都硬盘的公文中储存

* void store(Writer writer, String
comments)  

* void store(Writer writer, String
comments)  

* void store(OutputStream out, String
comments)

* void store(OutputStream out, String
comments)

* 参数:

* 参数:

*  Writer
writer:字符输出流,可以拔取FileWriter

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


OutputStream out:字节输出流,可以拔取FileOutputStream


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

*  String
comments:注释,解释表达存储的公文,无法动用普通话(乱码),私行认同编码格式为 Unicode编码

*  String
comments:注释,解释表达存储的文件,不或者使用粤语(乱码),暗中同意编码格式为 Unicode编码

* 可以利用””空字符串

* 可以动用””空字符串

* 操作步骤:

* 操作步骤:

* 1.开立Properties集合,往集合中添加多少

* 1.开立Properties集合,往集合中添加多少

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

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

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

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

* 4.获释财富

* 4.放出能源

* 注意:

* 注意:

* 1.流用到Writer字符流,可以写入粤语数据的

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

* 2.流运用OutputStream字节流,不能操作普通话,会有乱码

* 2.流用到OutputStream字节流,无法操作汉语,会有乱码

*
3.Propertie凑合存储的文书,一般都以.properties结尾(程序员暗中同意)

*
3.Propertie汇集存储的文件,一般都是.properties结尾(程序员私行认同)

 

 

 

 

格局的可变参数

方法的可变参数

  Jdk1.5 之后现身的新特色

  Jdk1.5 之后出现的新特点

  作用:

  作用:

    定义方法时,方法参数的档次鲜明,但是个数不鲜明,可以应用可变参数

    定义方法时,方法参数的门类显然,不过个数不分明,可以动用可变参数

 

 

  格式:

  格式:

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

    修饰符  重临值类型 
方法名(数据类型…变量名){

    }

    }

  使用注意:

  使用注意:

    •   可变参数的平底原理就是二个数组
    •   传递差异个数的参数,会创立不一样尺寸的数组,接收这几个参数可变参数的不二法门,调用的时候,可以不传递参数,传递任意个参数
    •   可变参数的底部原理就是三个数组
    •   传递不一样个数的参数,会创设差异尺寸的数组,接收这个参数可变参数的法子,调用的时候,可以不传递参数,传递任意个参数

  注意事项:

  注意事项:

  1. 二个办法的参数,只好定义一个可变参数
  2. 假若方式的参数有几个,那么可变参数必须写在列表的最后一位
  1. 贰个艺术的参数,只可以定义三个可变参数
  2. 假使形式的参数有多个,那么可变参数必须写在列表的终极一人

 

 

 

 

Collections集合工具类

Collections集合工具类

 

 

  Java.util.Collections 集合工具类

  Java.util.Collections 集合工具类

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

  Collections私有了无参构造方法,里面的法门全是静态的,通过类名可以平素利用

  Collections 常用艺术:

  Collections 常用艺术:

    1. static void shuffle(List<?> list) 使用暗中同意随机源对点名列表举行置换,(打乱集合中成分的种种)

    1. static void shuffle(List<?> list) 使用暗许随机源对点名列表进行置换,(打乱集合中成分的逐一)

    2.static void sort(List<?> list ) 依照成分的本来顺序,对点名列表依据升序举办排序(对聚集举行升序排序)

    2.static void sort(List<?> list ) 依照成分的本来顺序,对点名列表根据升序举行排序(对聚集进行升序排序)

相关文章