JAVA基础Day15

复习

  • List:列表。元素有序不唯一,可以通过下标来访问
    1. ArrayList:顺序表。基于数组来存储,适合于查询而不适合增删
    2. LinkedList:链表。基于节点来存储,适合于增删但是不适合于查询
    3. Vector:向量。基于数组来存储,本身是线程安全的
  • Set:散列集合。元素无序且唯一
    1. HashSet:基于元素的哈希码来进行存储
    2. TreeSet:基于树来存储。要求存入的元素对应的类必须实现Comparable接口
  • 其他
    1. Stack:栈。元素有序,先进后出
    2. Queue:队列。元素有序,先进先出
    3. Deque:双向队列。元素有序,两端放两端拿

其他

一、Stream

  1. Stream是JDK1.8提供的一套针对集合数据进行批量操作的"工作流"
  2. 可以利用Stream来对集合元素进行过滤、排序、转化、打印等

二、泛型

  1. 泛型是JDK1.5提供的特性之一,用于类型不确定的场景
  2. 在Java中,通常用一个大写字母来表示泛型,但是泛型的定义只要符合标识符的明明规则即可
  3. 在Java中,常见的定义泛型的字母:E - element,T - type,K - key,V - value,R - result
  4. 在Java中,泛型的顶级接口ParameterizedType(参数化类型)
  5. 泛型只能在类和方法上声明,不能单独声明

Map<K, V> - 映射

  1. Map存储的元素是键值对(一个键Key+一个值Value) - Map本质上由多个键值对来构成的
  2. Map不是集合!!!
  3. 在Map中,键是唯一的,一个键对应一个值,但是值不是唯一的
  4. 在JDK1.0中,映射的父类是Dictionary,从JDK1.2开始,Dictionary整个类过时,取而代之就是Map接口
  5. 练习:输入一个字符串,输出这个字符串中,每一个字符出现了多少次。例如输入字符串:abdaa,输出a=3 b=1 d=1
  6. HashMap底层是依靠数组+链表结构来存储数据,即数组的每一个位置上维系一个链表,将数组的每一个位置称之为是一个bucket(桶)。在默认情况下,如果不指定,那么默认初始容量是16(指的是数组长度而不是元素个数)
    1. HashMap最多有230个桶
    2. HashMap的桶的数量一定是2n的形式。指定的初始容量经过计算,一定是2n
    3. HashMap是线程不安全的
    4. 从JDK1.8开始,HashMap引入了红黑树(Red Black Tree - RBT)机制。当某个桶中元素个数>=8的时候,这个桶中的链表会扭转成一棵红黑树;当某个红黑树的节点个数<=6的时候,这棵红黑树会扭转回链表 - 当桶的数量>=64的时候,才会使用红黑树机制

     

  7. TreeMap:底层是基于红黑树来实现的,要求放入的键对应的类必须实现Comparable接口 - TreeMap本身线程不安全
  8. Hashtable:底层基于数组+链表来存储的,Hashtable本身线程安全
  9. 红黑树:是一棵自平衡二叉查找树

File - 文件

  • File:是Java中用于代表文件和目录(文件夹)的类 - File对象不一定会对应一个实际存在的文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值