• Java-Web学习-Java基础-集合、I/O


    Java标准库

    集合

    Java标准库中提供了大量的集合类,其核心为四个主要的类:

    1. Collection:单列集合,一次存一个元素
    2. Map:双列集合,存入的两个元素之间具备映射关系
    3. Iterator:迭代器
    4. Collections:虽然和Collection仅一字之差,但是这只是一个 工具类,其提供了许多静态方法用于集合管理。

    Collection

    Collection由可分为两大类:

    1. List:有序、可索引、元素可重复
    2. Set:无序、无索引、元素不可重复

    List

    List分为三个具体实现:

    1. ArrayList:数组结构实现,不支持同步。contains和remove依赖equals方法。
    2. LinkedList:链表结构实现,不支持同步
    3. Vector:数组结构实现,支持线程同步。contains/remove方法依赖hashCode && equals。

    Set

    Set分为两个具体实现:

    1. HashSet:利用Hash表实现,不支持同步,其中元素无序
      1. LinkedHashSet:继承HashSet,额外维护了有序性
    2. TreeSet:利用二叉树实现,不支持同步,支持排序
      • 自然排序(默认):需要容器内对象实现Comparable接口
      • 自定义:利用Collection.sort(set, comparator)传入比较器对象来自定义比较行为

    Map

    Map有三个具体实现类:

    1. HashTable:利用Hash表实现,不能存入null键和null值。支持线程同步
    2. HashMap:利用Hash表实现,允许null键和null值。不支持线程同步
    3. TreeMap:利用二叉树实现,支持排序。不支持线程同步

    Collections

    Collections类提供了许多静态方法:

    1. sort(Collection, Comparator):排序,comparator可选
    2. fill(Collection, Object):填充
    3. copy(List a, List b):复制
    4. shuffle(Collection):随机打乱
    5. reverse(Collection):反转
    6. indexOfSubList(List, List):寻找后者在前者中第一次出现的位置
    7. rotate(List, int):集合中元素看作一个环,旋转指定位

    提供的方法非常多,因此如果对集合具有一定操作需求的话可以不急着自己写,先看看标准库有没有提供。

    IO流

    流操作是数据沟通的重要方式,其主要规律为:

    • 明确数据来源和目的地:标准输入?文件?网络?
    • 明确数据类型:字节还是字符?
    • 明确数据设备:控制台?文件?

    Java对数据的操作都是通过流的方式,Java标准库提供了完备的输入输出支持。

    Java中IO流按类型分为字节流和字符流,又继续按输入输出分为两种:

    • 字节流:
      • InputStream
      • OutputStream
    • 字符流:
      • Reader
      • Writer

    字节流

    按字节读入/输出,是字节流的基本特征。以InputStream为例,其又分为FileInputStream和BufferInputStream

    FileInputStream

    字节文件输入流,从文件系统中读取字节形成流。其初始化接受一个File类对象或者由String类表示的一条完整的程序路径。

    FileInputStream(File file)
    FileInputStream(String name)
    
    BufferInputStream

    字节缓冲输入流,提高效率。其接收另一个InputStream类对象并采用缓冲区管理的方式提高其IO效率。

    BufferedInputStream(InputStream in, int size);
    //size可选,指定缓冲区大小
    

    字符流

    字符流将传入的数据解释为字符,按输入输出分为Reader和Writer两个基类。在此之下包括缓冲流、字符转换流。

    字符缓冲流

    字符缓冲流和字节缓冲流一致,都是使用缓冲区实现效率的提升

    字符转换流分为输入和输出两种,接受一个字节流对象,将其转化为一个Reader或Writer对象。严格意义上讲,字符转换流属于字符流,因为其实现了字符流的接口。

    其下还包括FileReader和FileWriter,本质上是将FileInputStream / FIleOutputStream进行了转换。

  • 相关阅读:
    SpringMVC使用静态资源
    MyBatis学习系列三——结合Spring
    新生儿操作系统操作手册
    新生儿信息管理系统升级说明
    Installing Vim 8.0 on Ubuntu 16.04 and Linux Mint 18
    git push.default 几种设置笔记
    vue测试安装和配置
    rspec 笔记
    vue引入bootstrap和fontawesome
    Vue单文件模板实例
  • 原文地址:https://www.cnblogs.com/Nortonary/p/14783755.html
Copyright © 2020-2023  润新知