ByteDataBuffer

อินเทอร์เฟซสาธารณะ ByteDataBuffer

DataBuffer ของไบต์

วิธีการสาธารณะ

นามธรรม BooleanDataBuffer
asBooleans ()
ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของบูลีน
นามธรรม DoubleDataBuffer
เป็นคู่ ()
ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์สองเท่า
นามธรรม FloatDataBuffer
เป็นลอย ()
ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของโฟลต
IntDataBuffer แบบนามธรรม
asInts ()
กลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของ ints
LongDataBuffer แบบนามธรรม
asLongs ()
ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์แบบยาว
บทคัดย่อ ShortDataBuffer
asShorts ()
กลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของกางเกงขาสั้น
ByteDataBuffer แบบนามธรรม
copyTo ( DataBuffer <Byte> dst ขนาดยาว)
ไบต์นามธรรม
getByte (ดัชนีแบบยาว)
อ่านไบต์ที่ดัชนีที่กำหนด
ไบต์นามธรรม
getObject (ดัชนีแบบยาว)
อ่านค่าตามดัชนีที่กำหนด
ByteDataBuffer แบบนามธรรม
แคบ (ขนาดยาว)
สร้างบัฟเฟอร์ใหม่ซึ่งมีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ ซึ่งมีขนาดถูกกำหนดเป็นค่าที่กำหนด
ByteDataBuffer แบบนามธรรม
ชดเชย (ดัชนียาว)
สร้างบัฟเฟอร์ใหม่ซึ่งมีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ โดยเริ่มต้นจากดัชนีที่กำหนด
ByteDataBuffer แบบนามธรรม
อ่าน (ไบต์[] dst)
วิธี การรับ จำนวนมากโดยใช้อาร์เรย์ไบต์
ByteDataBuffer แบบนามธรรม
อ่าน (ไบต์ [] dst, int offset, int length)
วิธี การรับ จำนวนมากโดยใช้อาร์เรย์ไบต์
ByteDataBuffer แบบนามธรรม
setByte (ค่าไบต์, ดัชนีแบบยาว)
เขียนไบต์ที่กำหนดลงในบัฟเฟอร์นี้ที่ดัชนีที่กำหนด
ByteDataBuffer แบบนามธรรม
setObject (ค่าไบต์, ดัชนีแบบยาว)
ByteDataBuffer แบบนามธรรม
ชิ้น (ดัชนียาว, ขนาดยาว)
สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ เริ่มต้นที่ดัชนีที่กำหนดและขนาดที่กำหนด
บทคัดย่อ DataBufferWindow < ByteDataBuffer >
หน้าต่าง (ขนาดยาว)
สร้าง DataBufferWindow ที่ให้มุมมองบางส่วนของบัฟเฟอร์นี้
ByteDataBuffer แบบนามธรรม
เขียน (ไบต์ [] src)
วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์ไบต์
ByteDataBuffer แบบนามธรรม
เขียน (ไบต์ [] src, int offset, int length)
วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์ไบต์

วิธีการสืบทอด

วิธีการสาธารณะ

นามธรรมสาธารณะ BooleanDataBuffer asBooleans ()

ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของบูลีน

บัฟเฟอร์ที่ส่งคืนจะให้มุมมองที่แตกต่างกันบนหน่วยความจำเดียวกันกับบัฟเฟอร์ไบต์ดั้งเดิม ซึ่งหมายความว่าการเปลี่ยนแปลงค่าในค่าหนึ่งจะส่งผลต่ออีกค่าหนึ่ง

การส่งคืน
ขว้าง
IllegalStateException หากบัฟเฟอร์นี้ไม่สามารถแปลงได้

บทคัดย่อสาธารณะ DoubleDataBuffer asDoubles ()

ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์สองเท่า

บัฟเฟอร์ที่ส่งคืนจะให้มุมมองที่แตกต่างกันบนหน่วยความจำเดียวกันกับบัฟเฟอร์ไบต์ดั้งเดิม ซึ่งหมายความว่าการเปลี่ยนแปลงค่าในค่าหนึ่งจะส่งผลต่ออีกค่าหนึ่ง

การส่งคืน
ขว้าง
IllegalStateException หากบัฟเฟอร์นี้ไม่สามารถแปลงได้

นามธรรมสาธารณะ FloatDataBuffer asFloats ()

ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของโฟลต

บัฟเฟอร์ที่ส่งคืนจะให้มุมมองที่แตกต่างกันบนหน่วยความจำเดียวกันกับบัฟเฟอร์ไบต์ดั้งเดิม ซึ่งหมายความว่าการเปลี่ยนแปลงค่าในค่าหนึ่งจะส่งผลต่ออีกค่าหนึ่ง

การส่งคืน
ขว้าง
IllegalStateException หากบัฟเฟอร์นี้ไม่สามารถแปลงได้

บทคัดย่อสาธารณะ IntDataBuffer asInts ()

กลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของ ints

บัฟเฟอร์ที่ส่งคืนจะให้มุมมองที่แตกต่างกันบนหน่วยความจำเดียวกันกับบัฟเฟอร์ไบต์ดั้งเดิม ซึ่งหมายความว่าการเปลี่ยนแปลงค่าในค่าหนึ่งจะส่งผลต่ออีกค่าหนึ่ง

การส่งคืน
ขว้าง
IllegalStateException หากบัฟเฟอร์นี้ไม่สามารถแปลงได้

LongDataBuffer นามธรรมสาธารณะ asLongs ()

ส่งกลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์แบบยาว

บัฟเฟอร์ที่ส่งคืนจะให้มุมมองที่แตกต่างกันบนหน่วยความจำเดียวกันกับบัฟเฟอร์ไบต์ดั้งเดิม ซึ่งหมายความว่าการเปลี่ยนแปลงค่าในค่าหนึ่งจะส่งผลต่ออีกค่าหนึ่ง

การส่งคืน
ขว้าง
IllegalStateException หากบัฟเฟอร์นี้ไม่สามารถแปลงได้

สาธารณะบทคัดย่อ ShortDataBuffer asShorts ()

กลับบัฟเฟอร์ไบต์นี้เป็นบัฟเฟอร์ของกางเกงขาสั้น

บัฟเฟอร์ที่ส่งคืนจะให้มุมมองที่แตกต่างกันบนหน่วยความจำเดียวกันกับบัฟเฟอร์ไบต์ดั้งเดิม ซึ่งหมายความว่าการเปลี่ยนแปลงค่าในค่าหนึ่งจะส่งผลต่ออีกค่าหนึ่ง

การส่งคืน
ขว้าง
IllegalStateException หากบัฟเฟอร์นี้ไม่สามารถแปลงได้

นามธรรมสาธารณะ ByteDataBuffer copyTo ( DataBuffer <Byte> dst ขนาดยาว)

ไบต์นามธรรมสาธารณะ getByte (ดัชนีแบบยาว)

อ่านไบต์ที่ดัชนีที่กำหนด

พารามิเตอร์
ดัชนี ดัชนีที่จะอ่านโฟลต
การส่งคืน
  • ไบต์ที่ดัชนีที่กำหนด
ขว้าง
IndexOutOfBoundsException ถ้าดัชนีเป็นลบหรือไม่เล็กกว่าขนาดบัฟเฟอร์

นามธรรมสาธารณะ Byte getObject (ดัชนีแบบยาว)

อ่านค่าตามดัชนีที่กำหนด สิ่งสำคัญ: การใช้วิธีนี้ควรจำกัดไว้เฉพาะบัฟเฟอร์ประเภทที่ไม่ใช่แบบดั้งเดิม หรือเมื่อผู้เรียกไม่ได้กำหนดชนิดข้อมูลไว้ ในกรณีอื่น ๆ ให้เลือกใช้ตัวแปรดั้งเดิมซึ่งจะปรับปรุงประสิทธิภาพได้อย่างมาก (เช่น IntDataBuffer.getInt(idx)

พารามิเตอร์
ดัชนี ดัชนีที่จะอ่านโฟลต
การส่งคืน
  • ค่าที่ดัชนีที่กำหนด

นามธรรมสาธารณะ ByteDataBuffer แคบ (ขนาดยาว)

สร้างบัฟเฟอร์ใหม่ซึ่งมีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ ซึ่งมีขนาดถูกกำหนดเป็นค่าที่กำหนด

ขนาดใหม่ต้องไม่ใหญ่กว่าขนาดบัฟเฟอร์นี้ การเปลี่ยนแปลงเนื้อหาของบัฟเฟอร์นี้จะปรากฏในบัฟเฟอร์ใหม่และในทางกลับกัน บัฟเฟอร์ใหม่จะเป็นแบบอ่านอย่างเดียวก็ต่อเมื่อบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียวเท่านั้น

การโทรนี้เทียบเท่ากับ slice(0, size)

พารามิเตอร์
ขนาด ขนาดของบัฟเฟอร์ใหม่นี้
การส่งคืน
  • บัฟเฟอร์ใหม่

ออฟเซ็ต ByteDataBuffer นามธรรมสาธารณะ (ดัชนีแบบยาว)

สร้างบัฟเฟอร์ใหม่ซึ่งมีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ โดยเริ่มต้นจากดัชนีที่กำหนด

ดัชนีต้องไม่ใหญ่กว่าขนาดบัฟเฟอร์นี้ การเปลี่ยนแปลงเนื้อหาของบัฟเฟอร์นี้จะปรากฏในบัฟเฟอร์ใหม่และในทางกลับกัน บัฟเฟอร์ใหม่จะเป็นแบบอ่านอย่างเดียวก็ต่อเมื่อบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียวเท่านั้น

การโทรนี้เทียบเท่ากับ slice(index, size() - index)

พารามิเตอร์
ดัชนี ดัชนีของค่าแรกของบัฟเฟอร์ใหม่ที่สร้างขึ้น ต้องไม่ใหญ่กว่า size()
การส่งคืน
  • บัฟเฟอร์ใหม่

บทคัดย่อสาธารณะ ByteDataBuffer อ่าน (ไบต์ [] dst)

วิธี การรับ จำนวนมากโดยใช้อาร์เรย์ไบต์

วิธีนี้จะถ่ายโอนค่าจากบัฟเฟอร์นี้ไปยังอาร์เรย์ปลายทางที่กำหนด หากมีค่าในบัฟเฟอร์น้อยกว่าที่จำเป็นในการตอบสนองคำขอ นั่นคือ หาก dst.length > size() จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferUnderflowException จะถูกส่งออก

มิฉะนั้น วิธีการนี้จะคัดลอกค่า n = dst.length จากบัฟเฟอร์นี้ไปยังอาร์เรย์ที่กำหนด

พารามิเตอร์
วันเวลา อาร์เรย์ที่จะเขียนค่าลงไป
การส่งคืน
  • บัฟเฟอร์นี้
ขว้าง
บัฟเฟอร์ UnderflowException หากมีค่าไม่เพียงพอที่จะคัดลอกจากบัฟเฟอร์นี้

บทคัดย่อสาธารณะ ByteDataBuffer อ่าน (ไบต์ [] dst, int offset, int length)

วิธี การรับ จำนวนมากโดยใช้อาร์เรย์ไบต์

วิธีนี้จะถ่ายโอนค่าจากบัฟเฟอร์นี้ไปยังอาร์เรย์ปลายทางที่กำหนด หากมีค่าในบัฟเฟอร์น้อยกว่าที่จำเป็นในการตอบสนองคำขอ นั่นคือ หาก length > size() จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferUnderflowException จะถูกส่งออกไป

มิฉะนั้น วิธีนี้จะคัดลอกค่า n = length จากบัฟเฟอร์นี้ไปยังอาร์เรย์ที่กำหนดโดยเริ่มต้นที่ออฟเซ็ตที่กำหนด

พารามิเตอร์
วันเวลา อาร์เรย์ที่จะเขียนค่าลงไป
ชดเชย ออฟเซ็ตภายในอาร์เรย์ของค่าแรกที่จะเขียน ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า dst.length
ความยาว จำนวนค่าสูงสุดที่จะเขียนลงในอาร์เรย์ที่กำหนด ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า dst.length - offset
การส่งคืน
  • บัฟเฟอร์นี้
ขว้าง
บัฟเฟอร์ UnderflowException หากมีค่าความยาวน้อยกว่าค่าที่เหลืออยู่ในบัฟเฟอร์นี้
IndexOutOfBoundsException หากเงื่อนไขเบื้องต้นของพารามิเตอร์ออฟเซ็ตและความยาวไม่คงอยู่

นามธรรมสาธารณะ ByteDataBuffer setByte (ค่าไบต์, ดัชนีแบบยาว)

เขียนไบต์ที่กำหนดลงในบัฟเฟอร์นี้ที่ดัชนีที่กำหนด

พารามิเตอร์
ค่า ไบต์ที่จะเขียน
ดัชนี ดัชนีที่จะเขียนค่า
การส่งคืน
  • บัฟเฟอร์นี้
ขว้าง
IndexOutOfBoundsException ถ้าดัชนีเป็นลบหรือไม่เล็กกว่าขนาดบัฟเฟอร์
ReadOnlyBufferException หากบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียว

นามธรรมสาธารณะ ByteDataBuffer setObject (ค่าไบต์, ดัชนีแบบยาว)

ชิ้น ByteDataBuffer นามธรรมสาธารณะ (ดัชนียาว, ขนาดยาว)

สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ เริ่มต้นที่ดัชนีที่กำหนดและขนาดที่กำหนด

ดัชนีบวกขนาดใหม่ต้องไม่ใหญ่กว่าขนาดบัฟเฟอร์นี้ การเปลี่ยนแปลงเนื้อหาของบัฟเฟอร์นี้จะปรากฏในบัฟเฟอร์ใหม่และในทางกลับกัน บัฟเฟอร์ใหม่จะเป็นแบบอ่านอย่างเดียวก็ต่อเมื่อบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียวเท่านั้น

พารามิเตอร์
ดัชนี ดัชนีของค่าแรกของบัฟเฟอร์ใหม่ที่สร้างขึ้น
ขนาด ขนาดของบัฟเฟอร์ใหม่นี้ต้องไม่ใหญ่กว่า size()
การส่งคืน
  • บัฟเฟอร์ใหม่

บทคัดย่อสาธารณะ DataBufferWindow < ByteDataBuffer > หน้าต่าง (ขนาดยาว)

สร้าง DataBufferWindow ที่ให้มุมมองบางส่วนของบัฟเฟอร์นี้

หน้าต่างที่สร้างขึ้นมีขนาดคงที่และสามารถ "slide" ไปตามบัฟเฟอร์นี้เพื่อให้มีมุมมองที่แตกต่างกันของข้อมูลโดยไม่ต้องจัดสรรอินสแตนซ์บัฟเฟอร์ใหม่ เช่นเดียวกับ offset(long) ซึ่งจะช่วยปรับปรุงประสิทธิภาพโดยรวมเมื่อมีการทำซ้ำบ่อยครั้ง ตัวอย่างเช่น:

IntDataBuffer bufferA = DataBuffers.ofInts(1024);
 // ... init buffer data
 IntDataBuffer bufferB = DataBuffers.ofInts(1, 2, 3, 4);

 // Return the index of the first occurrence of bufferB in bufferA using a sliding window
 DataBufferWindow<IntDataBuffer> windowA = bufferA.window(4);
 for (int i = 0; i < bufferA.size() - bufferB.size(); ++i) {
     if (windowA.slideTo(i).buffer().equals(bufferB)) {
         return i;
     
 }
 }

วัตถุที่ส่งคืนนั้นมีสถานะและไม่ปลอดภัยต่อเธรด

พารามิเตอร์
ขนาด ขนาดของหน้าต่าง
การส่งคืน
  • หน้าต่างใหม่ที่เริ่มต้นที่ดัชนี 0 ของบัฟเฟอร์นี้

นามธรรมสาธารณะ ByteDataBuffer เขียน (ไบต์ [] src)

วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์ไบต์

วิธีนี้จะถ่ายโอนค่าในอาร์เรย์ต้นทางที่กำหนดไปยังบัฟเฟอร์นี้ หากมีค่าในอาร์เรย์ต้นทางมากกว่าในบัฟเฟอร์นี้ กล่าวคือ หาก src.length > size() จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferOverflowException จะถูกส่งออกไป

มิฉะนั้น เมธอดนี้จะคัดลอกค่า n = src.length จากอาร์เรย์ที่กำหนด

พารามิเตอร์
src อาร์เรย์ต้นทางที่จะอ่านค่า
การส่งคืน
  • บัฟเฟอร์นี้
ขว้าง
BufferOverflowException หากมีพื้นที่ไม่เพียงพอในบัฟเฟอร์นี้สำหรับค่าในอาร์เรย์ต้นทาง
ReadOnlyBufferException หากบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียว

นามธรรมสาธารณะ ByteDataBuffer เขียน (ไบต์ [] src, int offset, int length)

วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์ไบต์

วิธีนี้จะถ่ายโอนค่าในอาร์เรย์ต้นทางที่กำหนดไปยังบัฟเฟอร์นี้ หากมีค่าในอาร์เรย์ต้นทางมากกว่าในบัฟเฟอร์นี้ กล่าวคือ หาก length > size() จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferOverflowException จะถูกส่งออกไป

มิฉะนั้น เมธอดนี้จะคัดลอกค่า n = length จากอาร์เรย์ที่กำหนดไปยังบัฟเฟอร์นี้ โดยเริ่มต้นที่ออฟเซ็ตที่กำหนด

พารามิเตอร์
src อาร์เรย์ต้นทางที่จะอ่านค่า
ชดเชย ออฟเซ็ตภายในอาร์เรย์ของค่าแรกที่จะอ่าน ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า src.length
ความยาว จำนวนค่าที่จะอ่านจากอาร์เรย์ที่กำหนด ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า src.length - offset
การส่งคืน
  • บัฟเฟอร์นี้
ขว้าง
BufferOverflowException หากมีพื้นที่ไม่เพียงพอในบัฟเฟอร์นี้สำหรับค่าในอาร์เรย์ต้นทาง
IndexOutOfBoundsException หากเงื่อนไขเบื้องต้นของพารามิเตอร์ออฟเซ็ตและความยาวไม่คงอยู่
ReadOnlyBufferException หากบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียว