Java-д бөөгнөрөл бий юу?
Java-д бөөгнөрөл бий юу?

Видео: Java-д бөөгнөрөл бий юу?

Видео: Java-д бөөгнөрөл бий юу?
Видео: Создание аннотации в java [Java Annotations | Reflection api] 2024, Арваннэгдүгээр
Anonim

Учир нь Java 8, одоо байгаа хариултыг шинэчлэх: Та ашиглаж болно Java Priority Queue as a Бөөн.

Үүнтэй адил хүмүүс Жава хэл дээр овоо гэж юу вэ гэж асуудаг.

The овоо нь бүх ангиллын тохиолдлууд болон массивуудын санах ойг хуваарилах ажлын цагийн өгөгдлийн хэсэг юм. The овоо виртуал машиныг эхлүүлэх үед үүсгэгддэг. Бөөн объектын агуулахыг автомат хадгалах удирдлагын системээр (хог цуглуулагч гэж нэрлэдэг) сэргээдэг; объектуудыг хэзээ ч тодорхой хуваарилдаггүй.

Дараа нь асуулт бол хоёртын мод нь овоо мөн үү? А хоёртын овоо нь овоо хэлбэрийн өгөгдлийн бүтэц хоёртын мод . Хоёртын овоолго тэргүүлэх дарааллыг хэрэгжүүлэх нийтлэг арга юм. Бөөн шинж чанар: зангилаа тус бүрт хадгалагдсан түлхүүр нь нийт дарааллын дагуу зангилааны хүүхдүүд дэх түлхүүрүүдээс их буюу тэнцүү (≧) эсвэл бага буюу тэнцүү (≦) байна.

Дараа нь Java хэл дээр овоо хэрхэн хэрэгждэг вэ гэсэн асуулт гарч ирнэ.

Бид PriorityQueue ангиллыг ашигладаг Heaps хэрэгжүүлэх in Java . Анхдагчаар Мин Нуруу хэрэгжиж байна энэ ангиасаа.

Аливаа i-р зангилааны хувьд, жишээлбэл, Arr:

  • Arr[(i -1) / 2] нь эх зангилааг буцаана.
  • Arr[(2 * i) + 1] нь зүүн хүүхэд зангилааг буцаана.
  • Arr[(2 * i) + 2] нь баруун хүүхэд зангилааг буцаана.

Овоол нь овоо уу?

The Бөөн . The овоо Энэ нь таны компьютерийн санах ойн хэсэг бөгөөд таны хувьд автоматаар удирдагддаггүй бөгөөд CPU-ээс тийм ч нягт удирддаггүй. Энэ нь санах ойн илүү чөлөөтэй хөвөх хэсэг юм (мөн илүү том). Санах ойг хуваарилахын тулд овоо , та суулгагдсан C функц болох malloc() эсвэл calloc() ашиглах ёстой.

Зөвлөмж болгож буй: