JAVASE-API-8--Map映射(HashMap、Hashtable、ConcurrentHashMap)、File ---D17

复习:

  1. Collection
    a) List:保证元素的存储顺序
    i. LinkedList:用节点存储数据。内存空间是不连续。适用于增删较多但是查询较少的场景。线程不安全
    b) Set:存储的元素是唯一的
    i. TreeSet:底层时间上一一颗二叉查找树结构,要求存储的元素所对应的类必须实现接口-Comparable;TreeSet会对其中的元素进行排序,排序规则是根据Comparable接口中的compareTo方法决定
    ii. HashSet:底层是基于HashMap来实现。HashMap底层是数组+链表结构。在存储元素的时候,是先计算元素的哈希码,然后在对哈希码进行二次运算,是结果落在某一个桶中。默认初始容量是16。在向桶中放的时候,是一次和桶中元素进行比较,如果一致则舍弃,如果都不一样,则放入桶中。当已用的桶的数量/桶的总个数>家在因子,要扩容。默认加载因子是0.75f。每次扩容默认增加一倍。扩容之后,所有的元素都要重新计算哈希码重新分布。本事是一个线程不安全的集合
  2. 泛型
    a) 参数化类型-ParameterizedType-JDK1.5的特性之一
    b) 泛型的上限:?extends类/接口
    泛型的下限:? Super类/接口
    c) 泛型的擦除:用具体类型来替换泛型的过程—发生在编译期



Map<K,V>—映射(接口)

K – key - 键,V – value - 值。
 每一个键必须对应一个值,构成了一个键值对。一个Map是由多个键值对来构成的。一个映射中的键是唯一的。值不是唯一的(可以重复)。如果键重复,则对应的值覆盖
 Map.Entry代表键值对的接口—每一个Map.Entry对象都是一个键值对–一个Map对象实际上是由多个Map.Entry对象组成的。
在这里插入图片描述

遍历映射
a) keySet方法—将所有的键放入一个Set集合中返回
在这里插入图片描述

b) entrySet方法–将所有的键值对放入一个Set集合中(重点)
在这里插入图片描述

HashMap:实现类

 当指定初始容量n的时候,n落在(2x,2x+1 ]实际容量经过计算一定是2x+1 (40->64 57->64)。允许键和值为null。HashMap是一个异步式县城不安全的映射。默认初始容量为16。效率最高的映射。

Hashtable:实现类
 底层存储和HashMap基本类似,底层都是数组+链表的结构。默认出事容量是11,默认加载因子是0.75f。如果指定初始容量,指定多大就是多大。每次扩容是先增加一倍,然后单独再+1(11->23)。不允许键和值为null。Hashtable 是一个同步式线程安全的映射。

ConcurrentHashMap实现类
 并发哈希映射–异步式线程安全的映射

Map 是集合么?----不是,但是Map是集合框架的成员
 Java Collections Framework:包含了数组、集合、映射以及和他们相关的工具类—[],Collection, Map, Arrays,Collections,Comparator, Comparable ,Iterator


练习:输入子个字符串,统计每一个字符出现的次数
在这里插入图片描述



File

 代表文件或者目录(文件夹)的类
在这里插入图片描述
在这里插入图片描述

删除目录:
 写成一个方法,获取这个目录下的子目录和子文件(listFiles()),如果子文件(isFiles()),直接删除;如果是子目录(isDirectory()),后续操作和当前方法的功能一致,直接调用当前的方法—递归 (删除整个c盘c://)
在这里插入图片描述

练习:统计工作空间中java文件以及class文件的个数
写成一个方法:获取工作空间中所有的子目录和子文件,如果是子目录-递归;如果是文件夹,判断这个文件夹是java还是class文件
在这里插入图片描述

路径:

用于指定文件或者目录的位置
D://a.text—绝对路径
test/a.txt—相对路径
绝对路径:以盘符或者/开头的路径。直接找到指定的位置。
相对路径:不以盘符或者/开头的路径。以当前路径为基准来计算要寻找的路径
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拓展:实现计算机中的移动但保留多个文件 ,完成编号过程
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值