HashMap болон TreeMap хоёрын ялгаа

Агуулгын хүснэгт:

HashMap болон TreeMap хоёрын ялгаа
HashMap болон TreeMap хоёрын ялгаа

Видео: HashMap болон TreeMap хоёрын ялгаа

Видео: HashMap болон TreeMap хоёрын ялгаа
Видео: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов. 2024, Оны зургадугаар сарын
Anonim

Гол ялгаа – HashMap ба TreeMap

Програмчлалд өгөгдөл цуглуулах янз бүрийн механизмууд байдаг. Цуглуулга нь өгөгдөл хадгалах нэг арга юм. Java зэрэг програмчлалын хэл нь Collections ашигладаг. Энэ нь өгөгдлийн элементүүдийн багцыг хадгалах, удирдахад зориулагдсан анги, интерфейс бүхий хүрээ юм. Ердийн массив дээр хадгалахад тодорхой тооны элемент байдаг. Энэ бол массивын хязгаарлалт юм. Үүний оронд программист цуглуулгыг ашиглаж болно. Цуглуулга ашиглан оруулах, устгах, эрэмбэлэх, хайх зэрэг үйлдлүүдийг хийж болно. Java хэл дээр Газрын зургийн интерфейс нь цуглуулгад хамаардаг. Газрын зургийг түлхүүр, утгын хос дахь өгөгдлийг төлөөлөхөд ашигладаг. Зөвхөн өвөрмөц түлхүүрүүд байдаг бөгөөд тус бүр нь харгалзах утгатай байдаг. HashMap болон TreeMap нь Map интерфейсийг хэрэгжүүлдэг ангиуд юм. HashMap нь өгөгдлийн элементүүдийн тодорхой дарааллыг хадгалдаггүй түлхүүр ба утгын хосыг хадгалахад ашигладаг Газрын зураг дээр суурилсан цуглуулгын анги юм. TreeMap нь өгөгдлийн элементүүдийн өсөх дарааллыг хадгалах түлхүүр ба утгын хосыг хадгалахад ашигладаг Газрын зураг дээр суурилсан цуглуулгын анги юм. HashMap болон TreeMap хоёрын гол ялгаа нь HashMap нь өгөгдлийн элементүүдийн тодорхой дарааллыг хадгалдаггүй, харин TreeMap нь өгөгдлийн элементүүдийн өсөх дарааллыг хадгалдагт оршино.

HashMap гэж юу вэ?

HashMap нь газрын зургийн интерфейсийг хэрэгжүүлдэг анги юм. Энэ нь AbstractMap классыг өргөтгөж, Map интерфейсийг хэрэгжүүлдэг. HashMap нь түлхүүр, утгын хосыг агуулдаг. Элемент бүр өвөрмөц байдаг. Түлхүүрийг ашиглан HashMap дээрх элементүүдийг олоход хялбар байдаг. HashMap-г зарлах нь дараах байдалтай байна.

нийтийн ангийн HashMap нь AbstractMap-г өргөтгөж, Газрын зураг, Clone, Serializable-г хэрэгжүүлдэг

K нь түлхүүрийг илэрхийлдэг бол V нь тухайн түлхүүрт тохирох утгыг илэрхийлдэг. Түлхүүр, утгын хос бүр нь HashMap-н оруулга юм.

HashMap ба TreeMap хоёрын ялгаа
HashMap ба TreeMap хоёрын ялгаа

Зураг 01: Газрын зургийн интерфейс

HaspMap-г ойлгохын тулд дараах хувилбарыг төсөөл. Хэрэв програмист тэнд оюутны нэрс болон холбогдох индексийн дугаарыг хадгалахыг хүсвэл HashMap ашиглаж болно. Оюутны нэрсийг индексийн дугаарыг олоход ашигладаг. Тиймээс оюутны нэрс түлхүүр, харин индексийн дугаар нь утга болно.

HashMap ба TreeMap хоёрын ялгаа _Зураг 02
HashMap ба TreeMap хоёрын ялгаа _Зураг 02

Зураг 02: Java ашигласан HashMap програм

Дээрх программын дагуу HashMap-ын объект үүссэн. Дараа нь програмист тухайн объектыг ашиглан элементүүдийг нэмж болно. Утга оруулах аргыг ашиглан оруулж болно. Утгыг татахын тулд программист түлхүүрээр get аргыг ашиглах ёстой. studentList.get ("150") ашиглах үед; Энэ нь Анн гэсэн индекст тохирох нэрийг хэвлэх болно. Хэрэв програмист бүх утгыг авахыг хүсвэл Map. Entry-г ашиглан бүх түлхүүр, утгыг хэвлэх боломжтой. Гаралтыг ажиглахдаа HashMap нь тодорхой дарааллыг баримталдаггүйг харж болно. Энэ нь оруулсан дарааллаар элементүүдийг хэвлэдэггүй. Элементүүдийг санамсаргүй дарааллаар хэвлэсэн.

TreeMap гэж юу вэ?

TreeMap нь Газрын зургийн интерфейсийг хэрэгжүүлдэг Java хэлний анги юм. HashMap-тай адилаар энэ нь түлхүүр, утгын хосуудыг хадгалахад ашиглагддаг, гэхдээ өсөх дарааллаар. TreeMap нь NavigableMap, NavigableMap нь SortedMap, SortedMap нь Газрын зургийг өргөтгөдөг. Элемент бүр өвөрмөц байдаг. TreeMap-г зарлах нь дараах байдалтай байна.

нийтийн ангийн TreeMap нь AbstractMap-г өргөтгөх нь NavigableMap, Clone, Serializable-г хэрэгжүүлдэг

K нь түлхүүрийг илэрхийлдэг бол V нь тухайн түлхүүрт тохирох утгыг илэрхийлдэг. Түлхүүр, утга хос бүр нь TreeMap-н оруулга юм.

HashMap ба TreeMap хоёрын гол ялгаа
HashMap ба TreeMap хоёрын гол ялгаа

Зураг 03: Java ашиглан TreeMap програм

Дээрх программын дагуу TreeMap-ын объект үүссэн. Дараа нь програмист тухайн объектыг ашиглан элементүүдийг нэмж болно. Утга оруулах аргыг ашиглан оруулж болно. Утгыг татахын тулд программист түлхүүрээр get аргыг ашиглах ёстой. studentList.get ("150") ашиглах үед; Энэ нь Анн гэсэн индекст тохирох нэрийг хэвлэх болно. Хэрэв програмист бүх утгыг авахыг хүсвэл Map. Entry-г ашиглан бүх түлхүүр, утгыг хэвлэх боломжтой. Гаралтыг ажиглахдаа TreeMap нь тодорхой дарааллыг хадгалж байгааг харж болно. Элементүүдийг өсөх дарааллаар хэвлэсэн.

HashMap болон TreeMap хоёрын ижил төстэй зүйл юу вэ?

  • HashMap болон TreeMap хоёулаа Газрын зургийн интерфейсийг хэрэгжүүлдэг.
  • HashMap болон TreeMap хоёулаа олон элементийг хадгалж, удирдах боломжтой.
  • HashMap болон TreeMap хоёулаа түлхүүр, утгын хосыг агуулна.
  • HashMap болон TreeMap хоёулаа олон хоосон утгатай байж болно.
  • HashMap болон TreeMap-д хадгалах боломжтой элементийн тоонд хязгаарлалт байхгүй.

HashMap болон TreeMap хоёрын ялгаа юу вэ?

HashMap vs TreeMap

HashMap нь Газрын зурагт суурилсан цуглуулгын анги бөгөөд өгөгдлийн элементүүдийн тодорхой дарааллыг хадгалдаггүй түлхүүр болон утгын хосыг хадгалахад ашигладаг. TreeMap нь Газрын зурагт суурилсан цуглуулгын анги бөгөөд өгөгдлийн элементүүдийн өсөх дарааллыг хадгалдаг түлхүүр болон утгын хосыг хадгалахад ашигладаг.
Захиалга
HashMap нь дарааллыг хадгалахгүй. TreeMap нь өсөх дарааллыг хадгалдаг.
Түлхүүр
HashMap нь нэг хоосон түлхүүр агуулж болно. TreeMap нь null түлхүүртэй байж болохгүй.
Гүйцэтгэл
HashMap нь TreeMap-аас хурдан. TreeMap нь HashMap-аас удаан.

Хураангуй – HashMap vs TreeMap

Java зэрэг програмчлалын хэл нь цуглуулгын хүрээг агуулдаг. Массивуудад тогтмол тооны элемент байж болно. Тиймээс массивын хэмжээг эхэнд нь эхлүүлэх хэрэгтэй. Цуглуулгад программист шаардлагатай бол олон элементүүдийг хадгалах боломжтой. Хадгалах тодорхой хэмжээ байхгүй. Газрын зураг нь цуглуулгын хүрээнд хамаарах интерфейс юм. HashMap нь өгөгдлийн элементүүдийн тодорхой дарааллыг хадгалдаггүй түлхүүр ба утгын хосыг хадгалахад ашигладаг Газрын зураг дээр суурилсан цуглуулгын анги юм. TreeMap нь Газрын зурагт суурилсан цуглуулгын анги бөгөөд өгөгдлийн элементүүдийн өсөх дарааллыг хадгалдаг түлхүүр ба утгын хосыг хадгалахад ашигладаг. Энэ нийтлэлд Газрын зургийн интерфейсийг хэрэгжүүлдэг HashMap болон TreeMap хоёрын ялгааг авч үзсэн. HashMap болон TreeMap хоёрын ялгаа нь HashMap нь өгөгдлийн элементүүдийн тодорхой дарааллыг хадгалдаггүй, харин TreeMap нь өгөгдлийн элементүүдийн өсөх дарааллыг хадгалдагт оршино.

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