Հիմնական տարբերություն – HashMap ընդդեմ TreeMap
Ծրագրավորման մեջ կան տվյալների հավաքագրման տարբեր մեխանիզմներ: Հավաքածուները տվյալների պահպանման եղանակներից մեկն են: Ծրագրավորման լեզուները, ինչպիսիք են Java-ն, օգտագործում են հավաքածուներ: Դա դասերի և ինտերֆեյսների շրջանակ է տվյալների տարրերի հավաքածուի պահպանման և մանիպուլյացիայի համար: Սովորական զանգվածում կա ֆիքսված քանակությամբ տարրեր, որոնք պետք է պահվեն: Դա զանգվածների սահմանափակում է: Փոխարենը, ծրագրավորողը կարող է օգտագործել հավաքածուներ: Գործողություններ, ինչպիսիք են տեղադրումը, ջնջումը, տեսակավորումը և որոնումը կարող են իրականացվել հավաքածուների միջոցով: Java-ում Քարտեզի ինտերֆեյսը պատկանում է հավաքածուներին: Քարտեզն օգտագործվում է տվյալների բանալիների, արժեքային զույգերում ներկայացնելու համար:Կան միայն եզակի բանալիներ, և յուրաքանչյուրն ունի համապատասխան արժեք: HashMap-ը և TreeMap-ը դասեր են, որոնք իրականացնում են Քարտեզի միջերեսը: HashMap-ը քարտեզի վրա հիմնված հավաքագրման դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք տվյալների տարրերում որոշակի կարգ չեն պահպանում: TreeMap-ը քարտեզի վրա հիմնված հավաքածուի դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք պահպանում են տվյալների տարրերի աճման կարգը: HashMap-ի և TreeMap-ի հիմնական տարբերությունն այն է, որ HashMap-ը չի պահպանում տվյալների տարրերի հատուկ կարգ, մինչդեռ TreeMap-ը պահպանում է տվյալների տարրերի աճման կարգը:
Ի՞նչ է HashMap-ը:
HashMap-ը մի դաս է, որն իրականացնում է քարտեզի միջերեսը: Այն ընդլայնում է AbstractMap դասը և իրականացնում Map միջերեսը: HashMap-ը պարունակում է բանալիներ, արժեքային զույգեր: Յուրաքանչյուր տարր եզակի է: Բանալու միջոցով հեշտ է գտնել տարրերը HashMap-ում: HashMap-ի հայտարարումը հետևյալն է.
հրապարակային դասի HashMap-ն ընդլայնում է AbstractMap-ն իրականացնում է քարտեզ, կլոնավորելի, սերիականացվող
K-ը վերաբերում է ստեղնին, մինչդեռ V-ն վերաբերում է տվյալ ստեղնին համապատասխանող արժեքին: Յուրաքանչյուր բանալի, արժեքային զույգ HashMap-ի մուտքն է:
Նկար 01. Քարտեզի միջերես
Ենթադրենք հետևյալ սցենարը՝ HaspMap-ը հասկանալու համար: Եթե այնտեղ ծրագրավորողը ցանկանում է պահպանել ուսանողների անունների և համապատասխան ինդեքսի համարների մի շարք, նա կարող է օգտագործել HashMap-ը: Ուսանողների անունները օգտագործվում են ինդեքսի համարները գտնելու համար: Հետևաբար, ուսանողների անունները բանալիներն են, իսկ ինդեքսի համարները՝ արժեքները:
Նկար 02. HashMap ծրագիր՝ օգտագործելով Java
Ըստ վերը նշված ծրագրի՝ ստեղծվում է HashMap-ի օբյեկտ։Այնուհետև ծրագրավորողը կարող է ավելացնել տարրեր՝ օգտագործելով այդ օբյեկտը։ Արժեքները կարող են տեղադրվել put մեթոդով: Արժեքները ստանալու համար ծրագրավորողը պետք է օգտագործի ստեղնով ստանալ մեթոդը: StudentList.get («150»); այն կտպագրի համապատասխան անունը այդ ցուցանիշին, որը Ann է: Եթե ծրագրավորողը ցանկանում է ստանալ բոլոր արժեքները, ապա նա կարող է օգտագործել Map. Entry-ը՝ տպելու բոլոր ստեղները և արժեքները: Արդյունքը դիտարկելիս կարելի է տեսնել, որ HashMap-ը հատուկ կարգ չի պահպանում։ Այն չի տպում տարրերը տեղադրված հերթականությամբ: Տարրերը տպագրվում են պատահական կարգով։
Ի՞նչ է TreeMap?
The TreeMap-ը Java-ի դաս է, որն իրականացնում է Քարտեզի միջերեսը: HashMap-ի նման, այն նաև օգտագործվում է բանալիների, արժեքների զույգերը պահելու համար, բայց աճման կարգով: TreeMap-ն իրականացնում է NavigableMap-ը, իսկ NavigableMap-ն ընդլայնում է SortedMap-ը, իսկ SortedMap-ն ընդլայնում է քարտեզը: Յուրաքանչյուր տարր եզակի է: TreeMap-ի հայտարարումը հետևյալն է.
հրապարակային դասի TreeMap-ն ընդլայնում է AbstractMap-ի ներդրումը NavigableMap, Cloneable, Serializable
K-ը վերաբերում է ստեղնին, մինչդեռ V-ն վերաբերում է տվյալ ստեղնին համապատասխանող արժեքին: Յուրաքանչյուր բանալի, արժեքային զույգ TreeMap-ի մուտքն է:
Նկար 03. TreeMap ծրագիր՝ օգտագործելով Java
Ըստ վերը նշված ծրագրի՝ ստեղծվում է TreeMap-ի օբյեկտ։ Այնուհետև ծրագրավորողը կարող է ավելացնել տարրեր՝ օգտագործելով այդ օբյեկտը։ Արժեքները կարող են տեղադրվել put մեթոդով: Արժեքները ստանալու համար ծրագրավորողը պետք է օգտագործի ստեղնով ստանալ մեթոդը: StudentList.get («150»); այն կտպագրի համապատասխան անունը այդ ցուցանիշին, որը Ann է: Եթե ծրագրավորողը ցանկանում է ստանալ բոլոր արժեքները, ապա նա կարող է օգտագործել Map. Entry-ը՝ տպելու բոլոր ստեղները և արժեքները: Արդյունքը դիտարկելիս կարելի է տեսնել, որ TreeMap-ը պահպանում է որոշակի կարգ։ Տարրերը տպագրվում են աճման կարգով։
Որո՞նք են նմանությունները HashMap-ի և TreeMap-ի միջև:
- Եվ HashMap-ը և TreeMap-ն իրականացնում են Քարտեզի ինտերֆեյս:
- Եվ HashMap-ը և TreeMap-ը կարող են պահել և շահարկել բազմաթիվ տարրեր:
- Եվ HashMap-ը և TreeMap-ը պարունակում են բանալիների, արժեքների զույգեր:
- Եվ HashMap-ը և TreeMap-ը կարող են ունենալ բազմաթիվ զրոյական արժեքներ:
- Չկա սահմանափակում տարրերի քանակի նկատմամբ, որոնք կարող են պահվել ինչպես HashMap-ում, այնպես էլ TreeMap-ում:
Ո՞րն է տարբերությունը HashMap-ի և TreeMap-ի միջև:
HashMap ընդդեմ TreeMap |
|
A HashMap-ը քարտեզի վրա հիմնված հավաքածուի դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք տվյալների տարրերում չեն պահպանում հատուկ կարգ: | A TreeMap-ը քարտեզի վրա հիմնված հավաքածուի դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որը պահպանում է տվյալների տարրերի աճման կարգը: |
Պատվիրել | |
ՀաշՔարտեզը չի պահպանում կարգը: | Ծառի քարտեզը պահպանում է աճման կարգը: |
Null բանալի | |
ՀաշՔարտեզը կարող է պարունակել մեկ զրոյական բանալի: | Ծառի քարտեզը չի կարող ունենալ զրոյական բանալի: |
Կատարում | |
HashMap-ն ավելի արագ է, քան TreeMap-ը: | TreeMap-ն ավելի դանդաղ է, քան HashMap-ը: |
Ամփոփում – HashMap ընդդեմ TreeMap
Ծրագրավորման լեզուները, ինչպիսիք են Java-ն, պարունակում են հավաքածուի շրջանակ: Զանգվածներում կարող են լինել ֆիքսված թվով էլեմենտներ։ Հետևաբար, զանգվածի չափը պետք է սկզբնավորվի սկզբում: Հավաքածուներում ծրագրավորողը կարող է շատ տարրեր պահել ըստ պահանջի:Պահելու կոնկրետ գումար չկա: Քարտեզը ինտերֆեյս է, որը պատկանում է հավաքածուի շրջանակին: HashMap-ը քարտեզի վրա հիմնված հավաքագրման դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք տվյալների տարրերում որոշակի կարգ չեն պահպանում: TreeMap-ը քարտեզի վրա հիմնված հավաքածուի դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք պահպանում են տվյալների տարրերի աճման կարգը: Այս հոդվածը քննարկեց HashMap-ի և TreeMap-ի միջև եղած տարբերությունը, որն իրականացնում է Քարտեզի միջերեսը: HashMap-ի և TreeMap-ի միջև տարբերությունն այն է, որ HashMap-ը չի պահպանում տվյալների տարրերի հատուկ կարգ, մինչդեռ TreeMap-ը պահպանում է տվյալների տարրերի աճման կարգը: