HashMap集合的特色,  HashMap集结的风味

Map集合

Map集合

Map接口概述:

Map接口概述:

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

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

  Map集结的天性:

  Map集合的风味:

  • 是2个双列会集,有多少个泛型key和value,使用的时候key和value的数据类型可
    以同样。也得以分化
  • Key不允许再度的,value能够重复的;
  • 1个key只可以对应3个value
  • 是三个双列集合,有八个泛型key和value,使用的时候key和value的数据类型可
    以同一。也得以差异
  • Key不允许再度的,value能够重复的;
  • 3个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群集的天性:

  • 底层是2个哈希表(数组+单向链表):查询快,增加和删除快
  • 是一个冬日集聚
  • 底层是3个哈希表(数组+单向链表):查询快,增加和删除快
  • 是一个冬辰集中

 

 

Map接口中的常用方法:

Map接口中的常用方法:

  • 壹.V   get(key)  根据key值重回对应的value值,key值不设有则赶回null
  • 2.V  put(key , value); 往集合中添日币素(key和value)
  • 一.V   get(key)  依照key值重临对应的value值,key值不存在则赶回null
  • 二.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集结中

      一.调用Map集结的中方法keySet,把Map集合中全部的健抽出来,存款和储蓄到Set会集中

       二.遍历Set会集,获取Map会集中的每三个健

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

 
    三.经过Map集结中的情势get(key),获取value值

 
    三.经过Map集结中的办法get(key),获取value值

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

   能够使用迭代器跟加强for循环遍历

 

 

  第两种格局:Map集结遍历键值方式

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

    Map集结中的二个主意:

    Map会集中的三个方式:

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

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

  使用手续

  使用手续

     * 壹.用到Map群集中的方法entrySet,把键值对(键与值的照射关系),抽出来存款和储蓄到Set
群集中

     * 壹.行使Map集合中的方法entrySet,把键值对(键与值的映射关系),抽出来存款和储蓄到Set
集结中

     * 二.遍历Set会集,获取每二个Entry对象

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

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

     * 三.采取Entry对象中的方法getKey和getValue获取健和值

  能够使用迭代器跟加强for循环遍历

  可以运用迭代器跟加强for循环遍历

 

 

 

 

HashMap存款和储蓄自定义类型:

HashMap存储自定义类型:

  使用HashMap积累自定义类格局,因为要保障key的唯1性。需求自定义类重写 hashCode()跟equals()方法;

  使用HashMap积累自定义类方式,因为要力保key的唯1性。供给自定义类重写 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>

  特点:

  特点:

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

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

    二.是贰个静止集中

    贰.是3个一如既往聚焦

 

 

Hashtable

Hashtable

  Map 的完结类 Hashtable

  Map 的贯彻类 Hashtable

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

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

     Hashtable 是线程安全的会见,是单线程的,运维速度慢

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

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

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

 

 

     Hashtable 命局和 Vector 是一样的,从 JDK一.二 开首,被更上进的 HashMap 替代

     Hashtable 命运和 Vector 是平等的,从 JDK一.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集结是三个唯壹和IO流相结合的集合
  • Properties会集也是3个双列会集,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
  • * 操作步骤:
  • 一.创设Properties集合对象
  • 2.成立字符输入流FileReader对象,构造方法中绑定要读取的数据源
  • 三.采用Properties集结中的方法load,把公文中积存的键值对,读取到聚集中使 用
  • 四.自由财富
  • 5.遍历Properties集合
  • * 注意:
  • 一.流运用Reader字符流,能够读取汉语数据
  • 二.流用到InputStream字节流,无法操作汉语,会有乱码
  • 3.Properties集中的安插文件中,能够运用注释单行数据,使用#
  • 4.Properties凑合的陈设文件中,key和value暗许都以字符串,不用加多””(画蛇 添足)
  • 伍.Properties聚焦的配备文件中,key和value的两次三番符号能够选用=,也可以使用 空格
  • * 参数:
  • Reader reader:字符输入流,能够选取FileReader
  • InputStream inStream:字节输入流,能够动用FileInputStream
  • * 操作步骤:
  • 一.创办Properties集合对象
  • 二.创建字符输入流FileReader对象,构造方法中绑定要读取的数据源
  • 3.施用Properties群集中的方法load,把公文中贮存的键值对,读取到聚聚集使 用
  • 四.自由资源
  • 5.遍历Properties集合
  • * 注意:
  • 1.流利用Reader字符流,能够读取粤语数据
  • 2.流运用InputStream字节流,不可能操作粤语,会有乱码
  • 叁.Properties群集的布置文件中,能够动用注释单行数据,使用#
  • 四.Properties会师的配备文件中,key和value暗中同意都是字符串,不用增加””(画蛇 添足)
  • 伍.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编码

* 能够动用””空字符串

* 能够使用””空字符串

* 操作步骤:

* 操作步骤:

* 一.创制Properties群集,往会集中添加多少

* 一.创办Properties集合,往集合中添加多少

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

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

* 3.调用Properties集合中的方法store,把集合中贮存的一时半刻数据,持久化都硬盘的文
件中存款和储蓄

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

* 四.获释能源

* 四.放出财富

* 注意:

* 注意:

* 一.流选取Writer字符流,能够写入中文数据的

* 一.流行使Writer字符流,能够写入汉语数据的

* 贰.流使用OutputStream字节流,不可能操作普通话,会有乱码

* 2.流选用OutputStream字节流,不可能操作汉语,会有乱码

*
三.Propertie汇聚存款和储蓄的公文,一般都是.properties结尾(程序猿私下认可)

*
三.Propertie聚众存款和储蓄的公文,一般都是.properties结尾(程序猿默许)

 

 

 

 

主意的可变参数

措施的可变参数

  Jdk一.5 之后现身的新性情

  Jdk1.5 之后出现的新特点

  作用:

  作用:

    定义方法时,方法参数的品种鲜明,不过个数不明确,能够应用可变参数

    定义方法时,方法参数的种类鲜明,然而个数不分明,能够行使可变参数

 

 

  格式:

  格式:

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

    修饰符  再次来到值类型 
方法名(数据类型…变量名){

    }

    }

  使用注意:

  使用注意:

    •   可变参数的平底原理便是一个数组
    •   传递不一样个数的参数,会创建不一致尺寸的数组,接收那一个参数可变参数的法子,调用的时候,能够不传递参数,传递任性个参数
    •   可变参数的平底原理正是2个数组
    •   传递区别个数的参数,会创建分化长度的数组,接收那个参数可变参数的法子,调用的时候,能够不传递参数,传递任性个参数

  注意事项:

  注意事项:

  1. 二个措施的参数,只好定义三个可变参数
  2. 壹旦措施的参数有三个,那么可变参数必须写在列表的结尾一人
  1. 一个方式的参数,只可以定义一个可变参数
  2. 假诺措施的参数有多少个,那么可变参数必须写在列表的最后一人

 

 

 

 

Collections会集工具类

Collections集结工具类

 

 

  Java.util.Collections 会集工具类

  Java.util.Collections 集结工具类

  Collections私有了无参构造方法,里面包车型地铁点子全是静态的,通过类名可以平素利用

  Collections私有了无参构造方法,里面包车型大巴方式全是静态的,通过类名能够直接选取

  Collections 常用艺术:

  Collections 常用艺术:

    1. static void shuffle(List<?> list) 使用暗中认可随机源对点名列表举办置换,(打乱集结兰月素的逐一)

    一. static void shuffle(List<?> list) 使用默许随机源对点名列表举行置换,(打乱集结兰月素的相继)

    二.static void sort(List<?> list ) 根据元素的本来顺序,对点名列表根据升序实行排序(对聚焦实行升序排序)

    二.static void sort(List<?> list ) 依照元素的当然顺序,对点名列表依据升序实行排序(对集中进行升序排序)

相关文章