Module bus.core

Class FastCharBuffer

java.lang.Object
org.miaixz.bus.core.io.buffer.FastBuffer
org.miaixz.bus.core.io.buffer.FastCharBuffer
All Implemented Interfaces:
Appendable, CharSequence

public class FastCharBuffer extends FastBuffer implements CharSequence, Appendable
快速字符缓冲,将数据存放在缓冲集中,取代以往的单一数组 注意:此缓存在大量重复append时,性能比StringBuilder要好,但是toArray()性能很差
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • FastCharBuffer

      public FastCharBuffer()
      构造
    • FastCharBuffer

      public FastCharBuffer(int size)
      构造
      Parameters:
      size - 一个缓冲区的最小字节数
  • Method Details

    • append

      public FastCharBuffer append(char[] array, int off, int len)
      向快速缓冲加入数据
      Parameters:
      array - 数据
      off - 偏移量
      len - 字节数
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • append

      public FastCharBuffer append(char[] array)
      向快速缓冲加入数据
      Parameters:
      array - 数据
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • append

      public FastCharBuffer append(char element)
      向快速缓冲加入一个字节
      Specified by:
      append in interface Appendable
      Parameters:
      element - 一个字节的数据
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • append

      public FastCharBuffer append(FastCharBuffer buff)
      将另一个快速缓冲加入到自身
      Parameters:
      buff - 快速缓冲
      Returns:
      快速缓冲自身 @see FastByteBuffer
    • array

      public char[] array(int index)
      根据索引位返回缓冲集中的缓冲
      Parameters:
      index - 索引位
      Returns:
      缓冲
    • reset

      public void reset()
      Description copied from class: FastBuffer
      复位缓冲
      Overrides:
      reset in class FastBuffer
    • toArrayZeroCopyIfPossible

      public char[] toArrayZeroCopyIfPossible()
      返回快速缓冲中的数据,如果缓冲区中的数据长度固定,则直接返回原始数组
      注意此方法共享数组,不能修改数组内容!
      Returns:
      快速缓冲中的数据
    • toArray

      public char[] toArray()
      返回快速缓冲中的数据
      Returns:
      快速缓冲中的数据
    • toArray

      public char[] toArray(int start, int len)
      返回快速缓冲中的数据
      Parameters:
      start - 逻辑起始位置
      len - 逻辑字节长
      Returns:
      快速缓冲中的数据
    • get

      public char get(int index)
      根据索引位返回一个字节
      Parameters:
      index - 索引位
      Returns:
      一个字节
    • toString

      public String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • append

      public FastCharBuffer append(CharSequence csq)
      Specified by:
      append in interface Appendable
    • append

      public FastCharBuffer append(CharSequence csq, int start, int end)
      Appends character sequence to buffer.
      Specified by:
      append in interface Appendable
    • append

      public FastCharBuffer append(String string)
      追加字符串
      Parameters:
      string - String
      Returns:
      this
    • ensureCapacity

      protected void ensureCapacity(int capacity)
      Description copied from class: FastBuffer
      检查现有缓冲区是否满足capacity,不满足则分配新的区域分配下一个缓冲区,不会小于1024
      Specified by:
      ensureCapacity in class FastBuffer
      Parameters:
      capacity - 理想缓冲区字节数