DataBuffer
สองเท่า
วิธีการสาธารณะ
นามธรรม DoubleDataBuffer | copyTo ( DataBuffer <Double> dst ขนาดยาว) |
นามธรรมสองเท่า | getDouble (ดัชนียาว) อ่านสองเท่าที่ดัชนีที่กำหนด |
นามธรรมคู่ | getObject (ดัชนีแบบยาว) อ่านค่าตามดัชนีที่กำหนด |
นามธรรม DoubleDataBuffer | แคบ (ขนาดยาว) สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ ซึ่งมีขนาดถูกกำหนดเป็นค่าที่กำหนด |
นามธรรม DoubleDataBuffer | ชดเชย (ดัชนียาว) สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ เริ่มต้นจากดัชนีที่กำหนด |
นามธรรม DoubleDataBuffer | อ่าน (สองเท่า[] dst) วิธี การรับ จำนวนมากโดยใช้อาร์เรย์คู่ |
นามธรรม DoubleDataBuffer | อ่าน (double[] dst, int offset, int length) วิธี การรับ จำนวนมากโดยใช้อาร์เรย์คู่ |
นามธรรม DoubleDataBuffer | setDouble (ค่าสองเท่า, ดัชนีแบบยาว) เขียนสองเท่าที่กำหนดลงในบัฟเฟอร์นี้ที่ดัชนีที่กำหนด |
นามธรรม DoubleDataBuffer | setObject (ค่าสองเท่า, ดัชนีแบบยาว) |
นามธรรม DoubleDataBuffer | ชิ้น (ดัชนียาว, ขนาดยาว) สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ เริ่มต้นที่ดัชนีที่กำหนดและขนาดที่กำหนด |
บทคัดย่อ DataBufferWindow < DoubleDataBuffer > | หน้าต่าง (ขนาดยาว) สร้าง DataBufferWindow ที่ให้มุมมองบางส่วนของบัฟเฟอร์นี้ |
นามธรรม DoubleDataBuffer | เขียน (double[] src) วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์คู่ |
นามธรรม DoubleDataBuffer | เขียน (double[] src, int offset, int length) วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์คู่ |
วิธีการสืบทอด
วิธีการสาธารณะ
นามธรรมสาธารณะ double getDouble (ดัชนียาว)
อ่านสองเท่าที่ดัชนีที่กำหนด
พารามิเตอร์
ดัชนี | ดัชนีที่จะอ่านโฟลต |
---|
การส่งคืน
- สองเท่าที่ดัชนีที่กำหนด
ขว้าง
IndexOutOfBoundsException | ถ้าดัชนีเป็นลบหรือไม่เล็กกว่าขนาดบัฟเฟอร์ |
---|
นามธรรมสาธารณะ Double getObject (ดัชนียาว)
อ่านค่าตามดัชนีที่กำหนด สิ่งสำคัญ: การใช้วิธีนี้ควรจำกัดไว้เฉพาะบัฟเฟอร์ประเภทที่ไม่ใช่แบบดั้งเดิม หรือเมื่อผู้เรียกไม่ได้กำหนดชนิดข้อมูลไว้ ในกรณีอื่น ๆ ให้เลือกใช้ตัวแปรดั้งเดิมซึ่งจะปรับปรุงประสิทธิภาพได้อย่างมาก (เช่น IntDataBuffer.getInt(idx)
พารามิเตอร์
ดัชนี | ดัชนีที่จะอ่านโฟลต |
---|
การส่งคืน
- ค่าที่ดัชนีที่กำหนด
นามธรรมสาธารณะ DoubleDataBuffer แคบ (ขนาดยาว)
สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ ซึ่งมีขนาดถูกกำหนดเป็นค่าที่กำหนด
ขนาดใหม่ต้องไม่ใหญ่กว่าขนาดบัฟเฟอร์นี้ การเปลี่ยนแปลงเนื้อหาของบัฟเฟอร์นี้จะปรากฏในบัฟเฟอร์ใหม่และในทางกลับกัน บัฟเฟอร์ใหม่จะเป็นแบบอ่านอย่างเดียวก็ต่อเมื่อบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียวเท่านั้น
การโทรนี้เทียบเท่ากับ slice(0, size)
พารามิเตอร์
ขนาด | ขนาดของบัฟเฟอร์ใหม่นี้ |
---|
การส่งคืน
- บัฟเฟอร์ใหม่
ออฟเซ็ต DoubleDataBuffer นามธรรมสาธารณะ (ดัชนีแบบยาว)
สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ เริ่มต้นจากดัชนีที่กำหนด
ดัชนีต้องไม่ใหญ่กว่าขนาดบัฟเฟอร์นี้ การเปลี่ยนแปลงเนื้อหาของบัฟเฟอร์นี้จะปรากฏในบัฟเฟอร์ใหม่และในทางกลับกัน บัฟเฟอร์ใหม่จะเป็นแบบอ่านอย่างเดียวก็ต่อเมื่อบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียวเท่านั้น
การโทรนี้เทียบเท่ากับ slice(index, size() - index)
พารามิเตอร์
ดัชนี | ดัชนีของค่าแรกของบัฟเฟอร์ใหม่ที่สร้างขึ้น ต้องไม่ใหญ่กว่า size() |
---|
การส่งคืน
- บัฟเฟอร์ใหม่
บทคัดย่อสาธารณะ DoubleDataBuffer อ่าน (double[] dst)
วิธี การรับ จำนวนมากโดยใช้อาร์เรย์คู่
วิธีนี้จะถ่ายโอนค่าจากบัฟเฟอร์นี้ไปยังอาร์เรย์ปลายทางที่กำหนด หากมีค่าในบัฟเฟอร์น้อยกว่าที่จำเป็นในการตอบสนองคำขอ นั่นคือ หาก dst.length > size()
จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferUnderflowException จะถูกส่งออก
มิฉะนั้น วิธีการนี้จะคัดลอกค่า n = dst.length
จากบัฟเฟอร์นี้ไปยังอาร์เรย์ที่กำหนด
พารามิเตอร์
วันเวลา | อาร์เรย์ที่จะเขียนค่าลงไป |
---|
การส่งคืน
- บัฟเฟอร์นี้
ขว้าง
บัฟเฟอร์ UnderflowException | หากมีค่าไม่เพียงพอที่จะคัดลอกจากบัฟเฟอร์นี้ |
---|
บทคัดย่อสาธารณะ DoubleDataBuffer อ่าน (double [] dst, int offset, int length)
วิธี การรับ จำนวนมากโดยใช้อาร์เรย์คู่
วิธีนี้จะถ่ายโอนค่าจากบัฟเฟอร์นี้ไปยังอาร์เรย์ปลายทางที่กำหนด หากมีค่าในบัฟเฟอร์น้อยกว่าที่จำเป็นในการตอบสนองคำขอ นั่นคือ หาก length > size()
จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferUnderflowException จะถูกส่งออกไป
มิฉะนั้น วิธีนี้จะคัดลอกค่า n = length
จากบัฟเฟอร์นี้ไปยังอาร์เรย์ที่กำหนดโดยเริ่มต้นที่ออฟเซ็ตที่กำหนด
พารามิเตอร์
วันเวลา | อาร์เรย์ที่จะเขียนค่าลงไป |
---|---|
ชดเชย | ออฟเซ็ตภายในอาร์เรย์ของค่าแรกที่จะเขียน ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า dst.length |
ความยาว | จำนวนค่าสูงสุดที่จะเขียนลงในอาร์เรย์ที่กำหนด ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า dst.length - offset |
การส่งคืน
- บัฟเฟอร์นี้
ขว้าง
บัฟเฟอร์ UnderflowException | หากมีค่าความยาวน้อยกว่าค่าที่เหลืออยู่ในบัฟเฟอร์นี้ |
---|---|
IndexOutOfBoundsException | หากเงื่อนไขเบื้องต้นของพารามิเตอร์ออฟเซ็ตและความยาวไม่คงอยู่ |
บทคัดย่อสาธารณะ DoubleDataBuffer setDouble (ค่าสองเท่า, ดัชนีแบบยาว)
เขียนสองเท่าที่กำหนดลงในบัฟเฟอร์นี้ที่ดัชนีที่กำหนด
พารามิเตอร์
ค่า | คู่ที่จะเขียน |
---|---|
ดัชนี | ดัชนีที่จะเขียนค่า |
การส่งคืน
- บัฟเฟอร์นี้
ขว้าง
IndexOutOfBoundsException | ถ้าดัชนีเป็นลบหรือไม่เล็กกว่าขนาดบัฟเฟอร์ |
---|---|
ReadOnlyBufferException | หากบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียว |
ชิ้น DoubleDataBuffer นามธรรมสาธารณะ (ดัชนียาว, ขนาดยาว)
สร้างบัฟเฟอร์ใหม่ที่มีเนื้อหาเป็นลำดับย่อยที่ใช้ร่วมกันของเนื้อหาของบัฟเฟอร์นี้ เริ่มต้นที่ดัชนีที่กำหนดและขนาดที่กำหนด
ดัชนีบวกขนาดใหม่ต้องไม่ใหญ่กว่าขนาดบัฟเฟอร์นี้ การเปลี่ยนแปลงเนื้อหาของบัฟเฟอร์นี้จะปรากฏในบัฟเฟอร์ใหม่และในทางกลับกัน บัฟเฟอร์ใหม่จะเป็นแบบอ่านอย่างเดียวก็ต่อเมื่อบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียวเท่านั้น
พารามิเตอร์
ดัชนี | ดัชนีของค่าแรกของบัฟเฟอร์ใหม่ที่สร้างขึ้น |
---|---|
ขนาด | ขนาดของบัฟเฟอร์ใหม่นี้ต้องไม่ใหญ่กว่า size() |
การส่งคืน
- บัฟเฟอร์ใหม่
บทคัดย่อสาธารณะ DataBufferWindow < DoubleDataBuffer > หน้าต่าง (ขนาดยาว)
สร้าง 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 ของบัฟเฟอร์นี้
บทคัดย่อสาธารณะ DoubleDataBuffer เขียน (double [] src)
วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์คู่
วิธีนี้จะถ่ายโอนค่าในอาร์เรย์ต้นทางที่กำหนดไปยังบัฟเฟอร์นี้ หากมีค่าในอาร์เรย์ต้นทางมากกว่าในบัฟเฟอร์นี้ กล่าวคือ หาก src.length > size()
จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferOverflowException จะถูกส่งออกไป
มิฉะนั้น เมธอดนี้จะคัดลอกค่า n = src.length
จากอาร์เรย์ที่กำหนด
พารามิเตอร์
src | อาร์เรย์ต้นทางที่จะอ่านค่า |
---|
การส่งคืน
- บัฟเฟอร์นี้
ขว้าง
BufferOverflowException | หากมีพื้นที่ไม่เพียงพอในบัฟเฟอร์นี้สำหรับค่าในอาร์เรย์ต้นทาง |
---|---|
ReadOnlyBufferException | หากบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียว |
บทคัดย่อสาธารณะ DoubleDataBuffer เขียน (double [] src, int offset, int length)
วิธี การใส่ จำนวนมากโดยใช้อาร์เรย์คู่
วิธีนี้จะถ่ายโอนค่าในอาร์เรย์ต้นทางที่กำหนดไปยังบัฟเฟอร์นี้ หากมีค่าในอาร์เรย์ต้นทางมากกว่าในบัฟเฟอร์นี้ กล่าวคือ หาก length > size()
จะไม่มีการถ่ายโอนค่าใด ๆ และ BufferOverflowException จะถูกส่งออกไป
มิฉะนั้น เมธอดนี้จะคัดลอกค่า n = length
จากอาร์เรย์ที่กำหนดไปยังบัฟเฟอร์นี้ โดยเริ่มต้นที่ออฟเซ็ตที่กำหนด
พารามิเตอร์
src | อาร์เรย์ต้นทางที่จะอ่านค่า |
---|---|
ชดเชย | ออฟเซ็ตภายในอาร์เรย์ของค่าแรกที่จะอ่าน ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า src.length |
ความยาว | จำนวนค่าที่จะอ่านจากอาร์เรย์ที่กำหนด ต้องไม่เป็นค่าลบและไม่ใหญ่กว่า src.length - offset |
การส่งคืน
- บัฟเฟอร์นี้
ขว้าง
BufferOverflowException | หากมีพื้นที่ไม่เพียงพอในบัฟเฟอร์นี้สำหรับค่าในอาร์เรย์ต้นทาง |
---|---|
IndexOutOfBoundsException | หากเงื่อนไขเบื้องต้นของพารามิเตอร์ออฟเซ็ตและความยาวไม่คงอยู่ |
ReadOnlyBufferException | หากบัฟเฟอร์นี้เป็นแบบอ่านอย่างเดียว |