Տարբերություն HashMap-ի և TreeMap-ի միջև

Բովանդակություն:

Տարբերություն HashMap-ի և TreeMap-ի միջև
Տարբերություն HashMap-ի և TreeMap-ի միջև

Video: Տարբերություն HashMap-ի և TreeMap-ի միջև

Video: Տարբերություն HashMap-ի և TreeMap-ի միջև
Video: Process Scheduling-ը Linux և Windows օպերացիոն համակարգերում - Լիլիթ Կնյազյան 2024, Նոյեմբեր
Anonim

Հիմնական տարբերություն – HashMap ընդդեմ TreeMap

Ծրագրավորման մեջ կան տվյալների հավաքագրման տարբեր մեխանիզմներ: Հավաքածուները տվյալների պահպանման եղանակներից մեկն են: Ծրագրավորման լեզուները, ինչպիսիք են Java-ն, օգտագործում են հավաքածուներ: Դա դասերի և ինտերֆեյսների շրջանակ է տվյալների տարրերի հավաքածուի պահպանման և մանիպուլյացիայի համար: Սովորական զանգվածում կա ֆիքսված քանակությամբ տարրեր, որոնք պետք է պահվեն: Դա զանգվածների սահմանափակում է: Փոխարենը, ծրագրավորողը կարող է օգտագործել հավաքածուներ: Գործողություններ, ինչպիսիք են տեղադրումը, ջնջումը, տեսակավորումը և որոնումը կարող են իրականացվել հավաքածուների միջոցով: Java-ում Քարտեզի ինտերֆեյսը պատկանում է հավաքածուներին: Քարտեզն օգտագործվում է տվյալների բանալիների, արժեքային զույգերում ներկայացնելու համար:Կան միայն եզակի բանալիներ, և յուրաքանչյուրն ունի համապատասխան արժեք: HashMap-ը և TreeMap-ը դասեր են, որոնք իրականացնում են Քարտեզի միջերեսը: HashMap-ը քարտեզի վրա հիմնված հավաքագրման դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք տվյալների տարրերում որոշակի կարգ չեն պահպանում: TreeMap-ը քարտեզի վրա հիմնված հավաքածուի դաս է, որն օգտագործվում է բանալիների և արժեքների զույգերը պահելու համար, որոնք պահպանում են տվյալների տարրերի աճման կարգը: HashMap-ի և TreeMap-ի հիմնական տարբերությունն այն է, որ HashMap-ը չի պահպանում տվյալների տարրերի հատուկ կարգ, մինչդեռ TreeMap-ը պահպանում է տվյալների տարրերի աճման կարգը:

Ի՞նչ է HashMap-ը:

HashMap-ը մի դաս է, որն իրականացնում է քարտեզի միջերեսը: Այն ընդլայնում է AbstractMap դասը և իրականացնում Map միջերեսը: HashMap-ը պարունակում է բանալիներ, արժեքային զույգեր: Յուրաքանչյուր տարր եզակի է: Բանալու միջոցով հեշտ է գտնել տարրերը HashMap-ում: HashMap-ի հայտարարումը հետևյալն է.

հրապարակային դասի HashMap-ն ընդլայնում է AbstractMap-ն իրականացնում է քարտեզ, կլոնավորելի, սերիականացվող

K-ը վերաբերում է ստեղնին, մինչդեռ V-ն վերաբերում է տվյալ ստեղնին համապատասխանող արժեքին: Յուրաքանչյուր բանալի, արժեքային զույգ HashMap-ի մուտքն է:

Տարբերությունը HashMap-ի և TreeMap-ի միջև
Տարբերությունը HashMap-ի և TreeMap-ի միջև

Նկար 01. Քարտեզի միջերես

Ենթադրենք հետևյալ սցենարը՝ HaspMap-ը հասկանալու համար: Եթե այնտեղ ծրագրավորողը ցանկանում է պահպանել ուսանողների անունների և համապատասխան ինդեքսի համարների մի շարք, նա կարող է օգտագործել HashMap-ը: Ուսանողների անունները օգտագործվում են ինդեքսի համարները գտնելու համար: Հետևաբար, ուսանողների անունները բանալիներն են, իսկ ինդեքսի համարները՝ արժեքները:

Տարբերությունը HashMap-ի և TreeMap-ի միջև _Նկար 02
Տարբերությունը HashMap-ի և TreeMap-ի միջև _Նկար 02

Նկար 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-ի մուտքն է:

Հիմնական տարբերությունը HashMap-ի և TreeMap-ի միջև
Հիմնական տարբերությունը HashMap-ի և 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-ը պահպանում է տվյալների տարրերի աճման կարգը:

Խորհուրդ ենք տալիս: