集合框架体系和使用2(Map)

目录

Map不同实现类的对比

HashMap(灰常重要)中的元素特点

Map中常用的方法

TreeMap、Properties的使用 

使用:

Properties

Collections工具类的使用

概述

 常见面试题区分Collection和Collections      

 方法(一部分)

排序

 交换

查找

复制、替换:

同步:


Map不同实现类的对比

  • java.util.Map:存储一对一对的数据(key-value键值对。类似于高中的函数)
    • HashMap(主要实现类);线程不安全,效率高,可以添加null的key和value值,底层使用数组+单向链表+红黑树存储(jdk8)
      • LinkedHashMap:是HashMap的子类,在此基础上增加了一对双向链表,(变的有序了)用于记录添加元素的先后顺序。进而我们遍历元素时就可以按照添加的顺序显示。开发中,对于频繁的遍历操作,建议使用此类。
    • Hashtable(古老实现类):线程安全的,效率低,不可以添加null的key或value值,底层使用数组+单项列表存储
      • Properties:其key和value都是String类型,常用来处理属性文件,子类
    • TreeMap:底层使用红黑树存储,可以按照添加的元素的指定的属性的大小顺序进行遍历,需要考虑使用①自然排序②定制排序(类似Treeset)

HashMap(灰常重要)中的元素特点

  • HashMap中的所有的key是不可重复的,无序的。所有的key构成一个set集合。——>key所在的类要重写hashCode()和equals()两个方法
  • HashMap中所有的value彼此之间是可重复的,无序的。所有的value构成一个Collection集合——>所在的类要重写equals()方法
  • HashMap中的一个key-value,就构成了一个Entry。
  • HashMap中所有的Entry彼此之间是不可重复的,无序的。所有的Entry就构成了一个set集合。

Map中常用的方法

    • put(Object key, Object value)
    • putAll(Map m)
    • Object remove(Object key)
    • clear()
    • 增操作也表示修改put(Object key, Object value)
    • putAll(Map m)
    • Object get(Object key)
  • 长度
    • size()
  • 遍历
    • 遍历key集:Set keySet( )
    • 遍历value集:Collection values( )
    • 遍历entry集:Set entrySet( )
  • 其他
    • clear()
    • boolean containsKey(Object key)
    • boolean containsValue(Object value)

遍历key集,value集

 遍历entry集

TreeMap、Properties的使用 

使用:

  • 底层使用红黑树存储
  • 可以按照添加的元素的指定的属性的大小顺序进行遍历
  • 需要考虑使用①自然排序②定制排序
  • 要求:向TreeMap中添加的key必须是同一个类型的对象

Properties

Collections工具类的使用

概述

        Collections是一个操作Set、List和Map等集合的工具类。

 常见面试题区分Collection和Collections      

  • Collection:集合框架中的用于存储一个一个元素的接口,又分为List和Set等子接口。
  • Collections:用于操作集合框架中的一个工具类。此时的集合框架包括:Set、List、Map 

 方法(一部分)

排序

  • reverse(List):反转List中元素的顺序

  • shuffle(List):对List集合元素进行随机排序

  • sort(List):根据元素的自然排序对指定List集合元素按升序排序

  • sort(List,Comparator):根据指定的Comparator产生的顺序对List集合的元素进行排序

 交换

swap(List ,int i, int j):交换下标i和j的元素

查找

  • Object max(Collection):根据元素的自然排序,返回给定集合中的元素大小

  • Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的"最大元素"
  • Object min(Collection)
  • Object min(Collection,Comparator)
  • int binarySearch(List list,T key):在list集合中查找某一个元素的下标,但是list的元素必须有序
  • int binarySearch(List list,T key):在list集合中查找某一个元素的下标,但是list的元素必须有序
  • int binarySearch(List list,T key,Comparator c):在list集合中查找某一个元素的下标,但是list的元素必须有序
  • int frequency(Collection c,Object o):返回指定集合中指定元素的出现次数

复制、替换:

  • void copy(List dest,List src):将src中的内容复制到dest中

  • boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List所有旧值
  • 提供了多个unmodifiableXxx( )方法,该方法返回指定Xxx的不可修改的视图

同步:

Collection类中提供了多个synchronizedXxx()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈奈朵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值