Гол ялгаа – 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-н оруулга юм.
Зураг 01: Газрын зургийн интерфейс
HaspMap-г ойлгохын тулд дараах хувилбарыг төсөөл. Хэрэв програмист тэнд оюутны нэрс болон холбогдох индексийн дугаарыг хадгалахыг хүсвэл HashMap ашиглаж болно. Оюутны нэрсийг индексийн дугаарыг олоход ашигладаг. Тиймээс оюутны нэрс түлхүүр, харин индексийн дугаар нь утга болно.
Зураг 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-н оруулга юм.
Зураг 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 нь өгөгдлийн элементүүдийн өсөх дарааллыг хадгалдагт оршино.