ลำดับการรีไซเคิลอินสแตนซ์ NdArray
เดียวกันเมื่อวนซ้ำองค์ประกอบ
คอนสตรัคชั่นสาธารณะ
FastElementSequence ( AbstractNdArray <T, U> ndArray, int sizeIdx, องค์ประกอบ U, DataBufferWindow <?> elementWindow) |
วิธีการสาธารณะ
NdArraySequence <U> | เป็นสไลซ์ () ส่งกลับแต่ละองค์ประกอบเป็นชิ้นใหม่ |
เป็นโมฆะ | forEachIndexed (ผู้บริโภค BiConsumer<long[], U>) |
ตัววนซ้ำ<U> | ตัววนซ้ำ () |
วิธีการสืบทอด
คอนสตรัคชั่นสาธารณะ
FastElementSequence สาธารณะ ( AbstractNdArray <T, U> ndArray, int sizeIdx, องค์ประกอบ U, DataBufferWindow <?> elementWindow)
วิธีการสาธารณะ
NdArraySequence สาธารณะ <U> asSlices ()
ส่งกลับแต่ละองค์ประกอบเป็นชิ้นใหม่
แตกต่างจากคอลเลกชัน Java ทั่วไป องค์ประกอบของ NdArraySequence
เป็นแบบชั่วคราว กล่าวคือ อินสแตนซ์ NdArray
ใหม่จะได้รับการจัดสรรสำหรับการวนซ้ำแต่ละครั้ง เพื่อปรับปรุงประสิทธิภาพ คุณสามารถรีไซเคิลอินสแตนซ์เดียวกันเพื่อดูองค์ประกอบทั้งหมดของลำดับนี้ได้ โดยใช้ DataBufferWindow
ในบางกรณี อาจเป็นการดีกว่าที่จะปิดใช้งานการปรับให้เหมาะสมดังกล่าวเพื่อให้แน่ใจว่าแต่ละองค์ประกอบที่ส่งคืนนั้นเป็นชิ้นใหม่ของอาร์เรย์ดั้งเดิม ตัวอย่างเช่น หากองค์ประกอบหนึ่งรายการขึ้นไปที่เยี่ยมชมต้องอยู่นอกขอบเขตของการวนซ้ำของลำดับ asSlices()
จะตรวจสอบให้แน่ใจว่าองค์ประกอบทั้งหมดที่ส่งคืนโดยลำดับนั้นเป็นอินสแตนซ์ที่ไม่ซ้ำกัน
final List<IntNdArray> vectors = new ArrayList<>();
IntNdArray matrix = NdArrays.ofInts(Shape.of(6, 6));
ndArray.elements(0).forEach(e -> vectors::add); // Not safe, as `e` might always be the same recycled instance
ndArray.elements(0).asSlices().forEach(e -> vectors::add); // Safe, each `e` is a distinct NdArray instance
การส่งคืน
- ลำดับที่ส่งคืนแต่ละองค์ประกอบที่วนซ้ำเป็นชิ้นใหม่