ડિક્શનરી અને હેશટેબલ વચ્ચેનો તફાવત

Anonim

શબ્દકોશ vs હેશટેબલ

શબ્દકોશ ટાઇપ કરવામાં આવે છે (sO મૂલ્યવેચાણની જરૂર નથી), એક હાશટેબલ (sO મૂલ્યવંતુઓ બૉક્સિંગની જરૂર છે). હાશટેબલમાં IMHOL શબ્દ કરતાં મૂલ્યની સરખામણીમાં સારી રીતે રસ્તો છે, કારણ કે તે હંમેશા મૂલ્ય એક ઑબ્જેક્ટ છે. જો તમે ઉપયોગ કરી રહ્યા છો નેટ 3. 5, સમાન શબ્દાવલિ મેળવવા માટે મેથોડ માટે વિસ્તૃત લખવું સહેલું છે.

હેશટેબલ ક્લાસ એક વિશિષ્ટ પ્રકારનો ડિક્શનરી વર્ગ છે જે તેની કીઓની સ્ટૉજમાં પૂર્ણાંક મૂલ્ય (જેને હેશ કહેવાય છે) માટે સહાય કરે છે. હેશટેબલ ક્લાસ હેશનો ઉપયોગ કરે છે, જેણે પસંદગીમાં ચોક્કસ કી માટે શોધને ઝડપી બનાવી છે. ઑબ્જેક્ટ ક્લાસમાંથી દરેક ઑબ્જેક્ટ ઉદ્દભવ્યું છે. આ વર્ગ GetHash મેથોડને સપોર્ટેડ કરે છે, જે પૂર્ણાંક આપે છે જે અનન્ય રીતે ઓબ્જેક્ટને ઓળખે છે. હેશટેબલ ક્લાસ સામાન્ય રીતે અત્યંત કાર્યક્ષમ પસંદગી છે. હેશટેબલ ક્લાસ સાથેનો એક જ મુદ્દો એ છે કે તેને થોડોક ઓવરહેડની જરૂર છે, અને નાની કોોલેલિટીઓન (દસ કરતા ઓછા ઘટકો) માટે ઓવરહેડ આડઅસર કરી શકે છે.

હેશટેબલ અને ડિકશનરી વચ્ચેનો અપૂર્ણ તફાવત છે. જો તમે ઇન્ડેક્સરોને હેશટેબલના મૂલ્યમાંથી પ્રાપ્ત કરવા માટે ઉપયોગ કરો છો, તો HashTable સફળતાપૂર્વક કોઈ અવિદ્યમાન આઇટમ માટે નલ પરત કરશે, જ્યારે શબ્દકોશમાં કોઈ ભૂલ થઈ જશે જો તમે કોઈ અનુક્રમણિકાનો ઉપયોગ કરીને આઇટમને ઍક્સેસ કરવાનો પ્રયાસ કરો જે ડિક્શનરીમાં અસ્તિત્વમાં નથી.

હેશટેબલ એ બેઝ ક્લાસ છે જે નબળું ટાઇપ કરેલું છે; ડિક્શનરીબેઝ એબ્સ્ટ્રેક્ટ ક્લાસ stronly ટાઇપ થયેલ છે અને આંતરિક રીતે HashTable નો ઉપયોગ કરે છે

એક અનોખી વાત એ છે કે શબ્દકોશમાં બહુવિધ એન્ટ્રીઝ ઉમેરવામાં આવે છે, જ્યારે ઑડિઓ ઉમેરવામાં આવે છે ત્યારે તે ઑરેસ્ટમાં ઉમેરાય છે. આ રીતે જો તમે ડિક્શનરી પર ફોર્રીચ લાગુ કરો છો, તો તમે તે જ ઓર્ડરમાં રેકોર્ડ્સ મેળવશો કે તમે તેમને શામેલ કર્યા છે. જયારે તમે હેશટેબલમાં તે જ રિકોર્ડ્સ ઉમેરતા હો ત્યારે, આ હોટટેબલમાં તે સાચું નથી હોતું, જ્યારે ઓર્ડરેલની જાળવણી નથી થતી. જો 'ડિક્શનરી હેશટેબલ પર આધારિત હોય તો' સાચું છે, શા માટે ડિકશનરી અન્ય રૂપે જાળવી રાખે છે પરંતુ હેશટેબલ નો ડેટા નથી.

જેમ જેમ તેઓ અલગ રીતે વર્તે તે પ્રમાણે જ, જેનરિક ડિક્શનરી હેશટેબલ લાગુ કરે છે, પરંતુ સિસ્ટમ પર આધારિત નથી. ક્લાઈક્ટીન હેશટેબલ. સામાન્ય શબ્દકોશની અમલીકરણ એ સૂચિમાંથી કી-મૂલ્ય-જોડીઓની આખી ઓકટોટિંગ પર આધારિત છે. આ પછી રેન્ડોમ ઍક્સેસ માટે હેશટેબલ બકેટ સાથે અનુક્રમિત કરવામાં આવે છે, પરંતુ જ્યારે તે સંખ્યાને પાછો આપે છે, ત્યારે તે ફક્ત સૂચિમાં જ ક્રમાંકિત રીતે ચાલે છે - જે પ્રવેશ તરીકે ફરીથી ઉમેરાશે નહીં કારણ કે પ્રવેશો ફરીથી ઉપયોગમાં લેવાતા નથી.