javatm platform
standard ed. 6

java.nio
类 longbuffer

java.lang.object 继承者 java.nio.buffer 继承者 java.nio.longbuffer
所有《suǒ yǒu》已实现的接口:
comparable<longbuffer>

public abstract class longbuffer
extends buffer
implements comparable<longbuffer>

long 缓冲区。

此类定义了 long 缓冲区上的四类操作:

  • 读写单个 long 的绝对和相对 getput 方法;

  • 将此缓冲区的连续 long 序列传输到数组中的相对批量 get 方法;

  • 将 long 数组或其他《qí tā》 long 缓冲区中的连续 long 序列传输到此缓冲区的相对批量 put 方法;以及

  • long 缓冲区的 compactingduplicatingslicing 方法。

  • long 缓冲区可以《 kě yǐ》通过 allocation 创建,此方法通过 wrapping 将一个现有 long 数组包装到缓冲区中来为缓冲区内容分配空间,或者通过创建现有字节缓冲区的视图 来创建。

    像字节缓冲区一样,long 缓冲区要么是直接的,要么是非直接的。通过此类的 wrap 方法创建的 long 缓冲区将是非直接的。当且仅当字节缓冲区本身为直接时,作为字节缓冲区的视图创建的 long 缓冲区才是直接的。通过调用 isdirect 方法可以《 kě yǐ》确定 long 缓冲区是否为直接的。

    指定此类中的方法(它们不返回其他《qí tā》值),以返回这些方法被调用时所在的缓冲区。这允许《yǔn xǔ》对方法调用进行链接。

    从以下版本开始《kāi shǐ》:
    1.4

    方法摘要
    static longbufferallocate(int capacity)
              分配新的 long 缓冲区。
     long[]array()
              返回实现此缓冲区的 long 数组(可选操作)
     intarrayoffset()
              返回此缓冲区中第一个元素在缓冲区的支持《zhī chí》数组中的偏移量(可选操作)
    abstract  longbufferasreadonlybuffer()
              创建共享此缓冲区内容的新的只读 long 缓冲区。
    abstract  longbuffercompact()
              压缩此缓冲区(可选操作)
     intcompareto(longbuffer that)
              将此缓冲区与另一个缓冲区进行比较。
    abstract  longbufferduplicate()
              创建共享此缓冲区内容的新的 long 缓冲区。
     booleanequals(object ob)
              判断此缓冲区是否与另一个对象相同。
    abstract  longget()
              相对 get 方法。
    abstract  longget(int index)
              绝对 get 方法。
     longbufferget(long[] dst)
              相对批量 get 方法。
     longbufferget(long[] dst,int offset,int length)
              相对批量 get 方法。
     booleanhasarray()
              判断是否可通过一个可访问《fǎng wèn》的 long 数组实现此缓冲区。
     intjs随机数hashcode()
              返回此缓冲区的当前哈希码。
    abstract  booleanisdirect()
              判断此 long 缓冲区是否为直接的。
    abstract  byteorderorder()
              获取此缓冲区的字节顺序。
    abstract  longbufferput(int index,long l)
              绝对 put 方法(可选操作)
    abstract  longbufferput(long l)
              相对 put 方法(可选操作)
     longbufferput(long[] src)
              相对批量 put 方法(可选操作)
     longbufferput(long[] src,int offset,int length)
              相对批量 put 方法(可选操作)
     longbufferput(longbuffer src)
              相对批量 put 方法(可选操作)
    abstract  longbufferslice()
              创建新的 long 缓冲区,其内容是此缓冲区内容的共享子序列。
     stringtostring()
              返回总结了此缓冲区状态的字符串。
    static longbufferwrap(long[] array)
              将 long 数组包装到缓冲区中。
    static longbufferwrap(long[] array,int offset,int length)
              将 long 数组包装到缓冲区中。
     
    从类 java.nio.buffer 继承的方法
    capacity, clear, flip, hasremaining, isreadonly, limit, limit, mark, position, position, remaining, reset, rewind
     
    从类 java.lang.object 继承的方法
    clone, finalize, getclass, notify, notifyall, wait, wait, wait
     

    方法详细小秙ense》畔

    allocate

    public static longbuffer allocate(int capacity)
    分配新的 long 缓冲区。

    新缓冲区的位置《wèi zhi》将为零,其界限将为其容量,其标记是未定义的。它将具有一个底层实现数组,且其数组偏移量将为零。

    参数:
    capacity - 新缓冲区的容量,以 long 为单位
    返回:
    新的 long 缓冲区
    抛出:
    illegalargumentexception - 如果 capacity 为负整数

    wrap

    public static longbuffer wrap(long[] array,     int offset,     int length)
    将 long 数组包装到缓冲区中。

    给定 long 数组将支持《zhī chí》新缓冲区;即缓冲区修改将导致数组修改,反之亦然。新缓冲区的容量将为 array.length,其位置《wèi zhi》将为 offset,其界限将为 offset + length,其标记是未定义的。其底层实现数组将为给定数组,并且其数组偏移量将为零。

    参数:
    array - 支持新缓冲区的数组
    offset - 要使用的子数组的偏移量;必须为非负且不大于 array.length。将新缓冲区的位置设置为此值。
    length - 要使用的子数组的长度《attitudes》;必须为非负且不大于 array.length - offset。将新缓冲区的界限设置为 offset + length
    返回:
    新的 long 缓冲区
    抛出:
    indexoutofboundsexception - 如果关于 offsetlength 参数的前提不成立《chéng lì》

    wrap

    public static longbuffer wrap(long[] array)
    将 long 数组包装到缓冲区中。

    给定 long 数组将支持新缓冲区;即缓冲区修改将导致数组修改,反之亦然。新缓冲区的容量和界限将为 array.length,其位置将为零,其标记是未定义的。其底层实现数组将为给定数组,并且其数组偏移量将为零。

    参数:
    array - 实现此缓冲区的数组
    返回:
    新的 long 缓冲区

    slice

    public abstract longbuffer slice()
    创建新的 long 缓冲区,其内容是此缓冲区内容的共享子序列。

    新缓冲区的内容将从此缓冲区的当前位置开始《kāi shǐ》。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓冲区的位置、界限和标记值是相互独立的。

    新缓冲区的位置将为零,其容量和界限将为此缓冲区中所剩余的 long 数量,其标记是未定义的。当且仅当此缓冲区为直接时,新缓冲区才是直接的,当且仅当此缓冲区为只读时,新缓冲区才是只读的。

    返回:
    新的 long 缓冲区

    duplicate

    public abstract longbuffer duplicate()
    创建共享此缓冲区内容的新的 long 缓冲区。

    新缓冲区的内容将为此缓冲区的内容。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓冲区的位置、界限和标记值是相互独立的。

    新缓冲区的容量、界限、位置和标记值将与此缓冲区相同。当且仅当此缓冲区为直接时,新缓冲区才是直接的,当且仅当此缓冲区为只读时,新缓冲区才是只读的。

    返回:
    新的 long 缓冲区

    asreadonlybuffer
    根据气象局的最新资料显示,苏迪勒?U风目前在花莲东南东方320公里海面上,以每秒21公里的速度《attitudes》向西北西前进,目前暴风圈已逐渐接近台湾《tái wān》东半部陆地,预计5时许正式登陆
    伊希丝说,这个广告看板在网上疯传后,很快就引来许多《xǔ duō》性别歧视、职业刻板印象的留言,还有人认为伊希丝是广告麻豆、笑容性感《xìng gǎn》,压根就不信她是工程师
    太平洋SOGO百货举办夏特卖,针对女鞋、休闲户外区促销,像是复兴馆RANDA撞色拼接楔型凉鞋,原价2,980元、特价1,490元,若持指定信用卡单笔满3,000元送折价券200元
    法官认为,郑捷迄今并未对死者家属、伤者道歉,审酌被害人受害程度、交通费与医疗费等证明《zhèng míng》单据,判决他应赔偿3091万余元,扣除潘的家属已领取犯罪被害人补偿金110万余元,郑应赔偿2981万余元
    汐止分局社后派出所在12时39分许,接获民众电话报案指在福德一路10号前有抢案,警方立即启动线上快打部队共14人赶赴现场围捕,最后在13时15分许于基隆河河堤上方草丛堆中逮捕黄姓犯嫌(27岁)
    ,根据警方表示,2辆车疑似都是租借的超跑,而开法拉利的周姓驾驶在彰化担任牙医,被测出0
    原来他和儿子住在台中,儿子疑似担任诈骗集团车手,却黑吃黑?钥?840万元赃款,跑路回台东老家

    public abstract longbuffer asreadonlybuffer()
    创建共享此缓冲区内容的新的只读 long 缓冲区。

    新缓冲区的内容将为此缓冲区的内容。此缓冲区的更改在新缓冲区中是可见的,但新缓冲区将是只读的并且不允许《yǔn xǔ》修改共享内容。两个缓冲区的位置、界限和标记值是相互独立的。

    新缓冲区的容量、界限、位置和标记值将与此缓冲区相同。

    如果此缓冲区本身是只读的,则此方法与 duplicate 方法完全《wán quán》相同。

    返回:
    新的只读 long 缓冲区

    get

    public abstract long get()
    相对 get 方法。读取此缓冲区当前位置的 long,然后该位置递增。

    返回:
    缓冲区当前位置的 long
    抛出:
    bufferunderflowexception - 如果缓冲区当前位置不小于其界限

    put

    public abstract longbuffer put(long l)
    相对 put 方法(可选操作)

    将给定 long 写入此缓冲区的当前位置,然后该位置递增。

    参数:
    l - 要写入的 long
    返回:
    此缓冲区
    抛出:
    bufferoverflowexception - 如果此缓冲区的当前位置不小于界限
    readonlybufferexception - 如果此缓冲区是只读的

    get

    public abstract long get(int index)
    绝对 get 方法。读取给定索引处的 long。

    参数:
    index - 将读取 long 的位置的索引
    返回:
    给定索引处的 long
    抛出:
    indexoutofboundsexception - 如果 index 为负或不小于缓冲区界限

    put

    public abstract longbuffer put(int index,      long l)
    绝对 put 方法(可选操作)

    将给定 long 写入此缓冲区的给定索引处。

    参数:
    index - 将在该位置写入 long
    l - 要写入的 long 值
    返回:
    此缓冲区
    抛出:
    indexoutofboundsexception - 如果 index 为负或不小于缓冲区界限
    readonlybufferexception - 如果此缓冲区是只读的

    get

    public longbuffer get(long[] dst,     int offset,     int length)
    相对批量 get 方法。

    此方法将此缓冲区的 long 传输到给定的目标数组中。如果缓冲区中剩余的 long 少于满足《mǎn zú》请求所需的 long,即如果 length > remaining(),则不传输 long 且抛出 bufferunderflowexception

    否则,此方法此缓冲区中的 length 个 long 复制到给定数组中,从此缓冲区的当前位置和数组中的给定偏移量位置开始复制。然后此缓冲区的位置递增 length

    换句话说,调用此方法的形式为 src.get(dst, off, len),效果与以下循环语句完全《wán quán》相同:

     for (int i=off; i < off + len; i++)   dst[i]=src.get(); 
    区别在于它首先检查此缓冲区中是否具有足够的 long,这样《then》可能《kě néng》效率更高。

    参数:
    dst - 将写入 long 的数组
    offset - 要写入的第一个 long 在数组中的偏移量;必须为非负且不大于 dst.length
    length - 要写入给定数组中的 long 的最大《zuì dà》数量;必须为非负且不大于 dst.length - offset
    返回:
    此缓冲区
    抛出:
    bufferunderflowexception - 如果此缓冲区中的剩余 long 少于 length
    indexoutofboundsexception - 如果关于 offsetlength 参数的前提不成立《chéng lì》

    get

    public longbuffer get(long[] dst)
    相对批量 get 方法。

    此方法将此缓冲区的 long 传输到给定的目标数组中。调用此方法的形式为 src.get(a),该调用与以下调用完全相同:

     src.get(a, 0, a.length) 

    返回:
    此缓冲区
    抛出:
    bufferunderflowexception - 如果此缓冲区中的剩余 long 少于 length

    put

    public longbuffer put(longbuffer src)
    相对批量 put 方法(可选操作)

    此方法将给定源缓冲区中的剩余 long 传输到此缓冲区中。如果源缓冲区中的剩余 long 多于此缓冲区中的剩余 long 空间,即 src.remaining() > remaining(),则不传输 long 且抛出 bufferoverflowexception

    否则,此方法将给定缓冲区中的 n = src.remaining() 个 long 复制到此缓冲区中,从每个缓冲区的当前位置开始复制。然后这两个缓冲区的位置均递增 n

    换句话说,调用此方法的形式为 dst.put(src),效果与以下循环语句完全相同:

     while (src.hasremaining())   dst.put(src.get()); 
    区别在于它首先检查此缓冲区中是否具有足够的空间,这样《then》可能《kě néng》效率更高。

    参数:
    src - 要从中读取 long 的源缓冲区;不能为此缓冲区
    返回:
    此缓冲区
    抛出:
    bufferoverflowexception - 如果对于源缓冲区中剩余的 long,此缓冲区没有足够空间
    illegalargumentexception - 如果源缓冲区是此缓冲区
    readonlybufferexception - 如果此缓冲区是只读的

    put

    public longbuffer put(long[] src,     int offset,     int length)
    相对批量 put 方法(可选操作)

    此方法将给定源数组中的 long 传输到此缓冲区中。如果要从数组复制的 long 多于此缓冲区中的剩余 long 空间,即如果 length > remaining(),则不传输 long 且抛出 bufferoverflowexception

    否则,此方法将给定数组中的 length 个 long 复制到此缓冲区中,从数组中给定偏移量位置和此缓冲区的当前位置开始复制。然后此缓冲区的位置递增 length

    换句话说,调用此方法的形式为 dst.put(src, off, len),效果与以下循环语句完全相同:

     for (int i=off; i < off + len; i++)   dst.put(a[i]); 
    区别在于它首先检查此缓冲区中是否具有足够的空间,这样可能效率更高。

    参数:
    src - 要从中读取 long 的数组
    offset - 要读取的第一个 long 在数组中的偏移量;必须为非负且不大于 array.length
    length - 要从给定数组读取的 long 数量;必须为非负且不大于 array.length - offset
    返回:
    此缓冲区
    抛出:
    bufferoverflowexception - 如果此缓冲区没有足够空间
    indexoutofboundsexception - 如果关于 offsetlength 参数的前提不成立
    readonlybufferexception - 如果此缓冲区是只读的

    put

    public final longbuffer put(long[] src)
    相对批量 put 方法(可选操作)

    此方法将给定源 long 数组中的所有内容传输到此缓冲区中。调用此方法的形式为 dst.put(a),该调用与以下调用完全相同:

     dst.put(a, 0, a.length) 

    返回:
    此缓冲区
    抛出:
    bufferoverflowexception - 如果此缓冲区没有足够空间
    readonlybufferexception - 如果此缓冲区是只读的

    hasarray

    public final boolean hasarray()
    判断是否可通过一个可访问《fǎng wèn》的 long 数组实现此缓冲区。

    如果此方法返回 true,则可以安全《ān quán》地调用 arrayarrayoffset 方法。

    指定者:
    buffer 中的 hasarray
    返回:
    当且仅当存在实现此缓冲区的数组,并且此缓冲区不是只读缓冲区时,返回 true

    array

    public final long[] array()
    返回实现此缓冲区的 long 数组(可选操作)

    此缓冲区的内容修改将导致返回的数组内容修改,反之亦然。

    调用此方法之前要调用 hasarray 方法,以确保此缓冲区具有可访问的底层实现数组。

    指定者:js随机数
    buffer 中的 array
    返回:
    实现此缓冲区的数组
    抛出:
    readonlybufferexception - 如果存在实现此缓冲区的数组,但缓冲区是只读的
    unsupportedoperationexception - 如果不存在某个可访问的数组实现此缓冲区

    arrayoffset

    public final int arrayoffset()
    返回此缓冲区中第一个元素在缓冲区的支持数组中的偏移量(可选操作)

    如果存在实现此缓冲区的数组,则缓冲区位置 p 对应于数组索引 p + arrayoffset()

    调用此方法之前要调用 hasarray 方法,以确保此缓冲区具有可访问的底层实现数组。

    指定者:
    buffer 中的 arrayoffset
    返回:
    此缓冲区的第一个元素在缓冲区数组中的偏移量
    抛出:
    readonlybufferexception - 如果存在实现此缓冲区的数组,但缓冲区是只读的
    unsupportedoperationexception - 如果不存在某个可访问的数组实现此缓冲区

    compact

    public abstract longbuffer compact()
    压缩此缓冲区(可选操作)

    将缓冲区当前位置和界限之间的 long(如果有)复制到缓冲区的开始处。即将《is about》索引 p = position() 处的 long 复制到索引 0 处,将索引 p + 1 处的 long 复制到索引 1 处,依此类推,直到将索引 limit() - 1 处的 long 复制到索引 n网站地图 手机端 = limit() - 1 - p 处。然后将缓冲区的位置设置为 n+1,并将其界限设置为其容量。如果已定义了标记,则丢弃它。

    将缓冲区的位置设置为复制的 long 的数量,而不是零,以便调用此方法后可以紧接着调用另一个相对 put 方法。

    返回:
    此缓冲区
    抛出:
    readonlybufferexception - 如果此缓冲区是只读的

    isdirect

    public abstract boolean isdirect()
    判断此 long 缓冲区是否为直接的。

    指定者:
    buffer 中的 isdirect
    返回:
    当且仅当此缓冲区为直接时,返回 true

    tostring

    public string tostring()
    返回总结了此缓冲区状态的字符串。

    覆盖:
    object 中的 tostring
    返回:
    一个总结字符串

    hashcode

    public int hashcode()
    返回此缓冲区的当前哈希码。

    long 缓冲区的哈希码只取决于其剩余元素;即取决于从 position() 开始一直到(包括《included》)limit() - 1 处的元素。

    因为缓冲区哈希码与内容有关,因此《therefore》建议不要《压嘛碟》在哈希映射或类似数据结构中将缓冲区用作键,除非知道《knew》它们的内容不会发生《occasionally occurred》更改。

    覆盖:
    object 中的 hashcode
    返回:
    此缓冲区的当前哈希码
    另请参见:
    object.equals(java.lang.object),hashtable

    equals

    public boolean equals(object ob)
    判断此缓冲区是否与另一个对象相同。

    两个 long 缓冲区是相同的,当且仅当:

    1. 它们具有相同的元素类型,

    2. 它们具有相同数量的剩余元素,并且

    3. 两个剩余元素序列(与它们的起始位置无关)逐点相同。

    long 缓冲区与任何其他类型的对象都不同。

    覆盖:
    object 中的 equals
    参数:
    ob - 此缓冲区要比较的对象
    返回:
    当且仅当此缓冲区与给定对象相同时,返回 true
    另请参见:
    object.hashcode(),hashtable

    compareto

    public int compareto(longbuffer that)
    将此缓冲区与另一个缓冲区进行比较。

    比较两个 long 缓冲区的方法是按字典顺序比较它们的剩余元素序列,而不考虑每个序列在其对应缓冲区中的起始位置。

    long 缓冲区不能与其他类型的对象进行比较。

    指定者:
    接口 comparable<longbuffer> 中的 compareto
    参数:
    that - 要比较的对象。
    返回:
    如果此缓冲区小于、等于或大于给定缓冲区,则相应返回负整数、零或正整数

    order

    public abstract byteorder order()
    获取此缓冲区的字节顺序。

    通过分配或通过包装现有 long 数组而创建的 long 缓冲区的字节顺序是底层硬件的本机顺序。作为字节缓冲区的视图而创建的 long 缓冲区的字节顺序是创建视图时字节缓冲区的字节顺序。

    返回:
    此缓冲区的字节顺序

    javatm platform
    standard ed. 6

    提交错误或意见《remark》
    有关更多的 api 参考资料和开发《kāi fā》人员文档,请参阅 java se 开发《kāi fā》人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作《work》代码示例。

    版权所有 2007 sun microsystems, inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策