સેટ અને સૂચિ વચ્ચેનો તફાવત

Anonim

અરે સૂચિ અને લિન્ક્ડ સૂચિ વચ્ચેના તફાવતની વિભાવના તરફ આવી ગયા છીએ

વાસ્તવિક મતભેદોમાં પ્રવેશ કરતા પહેલાં, શું આપણે ખરેખર તે ખરેખર જાણીએ છીએ?

સેટ શું છે?

અમે ગણિતમાં સેટમાં અને અહીં સેટ કરોનો ખ્યાલ આવે છે અને તે જ રીતે ઓછો અર્થ થાય છે. હા, તે ઘટકોનું સંગ્રહ છે અને મોટા ભાગના કિસ્સાઓમાં, સમાન ઘટકોનો સંગ્રહ છે. તમે સેટ કરવા માટે આ ઘટકોને ઉમેરવાનો પ્રયત્ન કરી શકો છો અને સમજવા માટે છાપવાનો પ્રયાસ કરો, તે વાસ્તવમાં કેવી રીતે સંગ્રહિત થાય છે

સેટમાં ઇનપુટ: 20, 50, 10, 30.

વાસ્તવમાં સેટમાં 10, 20, 30, 50 તરીકે સંગ્રહિત કરવામાં આવે છે.

આ ઘટકો અહીં સૉર્ટ થાય છે અને તેમના નિવેશ ક્રમમાં સંગ્રહિત નથી. આ સમૂહની એક એવી સુવિધા છે કે જે હંમેશા સંગ્રહિત કરતા પહેલા તત્વોને ગોઠવે છે અને અલબત્ત, તેમાં અપવાદ છે અને તે એક લિંકડેશસેટ છે કારણ કે તે તત્વોના દાખલ ક્રમમાં જાળવે છે.

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

તેને અમલમાં કેવી રીતે?

વધુ સારી સમજણ માટે, અમે તેની સિન્ટેક્સ સાથે સમૂહ રજૂ કર્યું છે. નીચે આપેલી વાક્યરચનાથી, તમે હેશસેટ અને ટ્રીસેટ જેવી વિવિધ પ્રકારના સેટને ઓળખી શકો છો.

જાવા આયાત કરો ઉપયોગ *;

જાહેર વર્ગ સેટવેશન {{ જાહેર સ્ટેટિક રદબાતલ મુખ્ય (શબ્દમાળા દલીલો []) {

પૂર્ણાંક ગણતરી [=] 34, 22, 10, 60, 30, 22} {25, 17, 76, 12, 88, 57};

સેટ કરો = નવા હૅશેટ ();

({i = 0; i <5; i ++} માટે {{) પ્રયાસ કરો {

સેટ કરો. ઉમેરો (ગણતરી [i]);

}

સિસ્ટમ આઉટ println (સેટ);

ટ્રીસેટ સૉર્ટ કરેલું સટેટ = નવું ટ્રીસેસ (સેટ);

સિસ્ટમ આઉટ println ("અહીં આપણી પાસે સૉર્ટ કરેલ આઉટપુટ છે:");

સિસ્ટમ આઉટ println (સૉર્ટસેટેગ);

સિસ્ટમ આઉટ println ("પ્રથમ તત્વ જુઓ:" + (પૂર્ણાંક) સૉર્ટ કરેલ સત્ર. પ્રથમ ());

સિસ્ટમ આઉટ println ("છેલ્લું તત્વ જુઓ:" + (પૂર્ણાંક) સૉર્ટ કરેલ છેલ્લી છેલ્લી ());

}

પકડી (અપવાદ ઇ) {}

}

}

ઉપરના કોડનું નિર્માણ નીચે પ્રમાણે છે.

[25, 17, 76, 12, 88]

અહીં આપણી પાસે સૉર્ટ કરેલ આઉટપુટ છે:

[12, 17, 25, 76, 88]

પ્રથમ ઘટક જુઓ: 12 > છેલ્લું તત્વ જુઓ: 88

યાદી શું છે?

એક સૂચિ કલેક્શન કેવી રીતે કરે છે તે સમાન સંગ્રહને વિસ્તરે છે, પરંતુ તે દાખલ કરવાના હુકમનું સંચાલન કરે છે. તમે નીચેની નામોને સૂચિમાં ઉમેરવાનો પ્રયાસ કરો અને જુઓ કે કેવી રીતે તેને ઉમેરવામાં આવે છે.

સૂચિમાં ઇનપુટ:

જહોન, નેન્સી, મેરી, એલિસ

તે સૂચિમાં કેવી રીતે સંગ્રહિત થાય છે:

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

તેને અમલમાં કેવી રીતે? ચાલો નીચે આપેલ વાક્યરચનામાં અરેલીસ્ટ અને લિન્ક્ડલિસ્ટ જેવી કેટલીક પદ્ધતિઓ જુઓ.

જાવા આયાત કરો ઉપયોગ *;

જાહેર કક્ષાની કલેક્શનસ્સૅમ {

જાહેર સ્ટેટિક રદબાતલ મુખ્ય (શબ્દમાળા [] આર્ગિગેટ્સ) {

સૂચિ A1 = નવા અરેલીસ્ટ ();

a1 ઉમેરો ("જોહ્ન");

a1 ઉમેરો ("નેન્સી");

a1 ઉમેરો ("મેરી");

a1 ઉમેરો ("એલિસ");

સિસ્ટમ આઉટ println ("અરેલીસ્ટ એલિમેન્ટ્સ છે");

સિસ્ટમ આઉટ પ્રિન્ટ (" t" + a1);

યાદી l1 = નવી લિંક્ડલિસ્ટ ();

l1 ઉમેરો ("સ્લિવિઆ");

l1 ઉમેરો ("અર્જુન");

l1 ઉમેરો ("દીપિકા");

l1 ઉમેરો ("સુસાન");

સિસ્ટમ આઉટ println ();

સિસ્ટમ આઉટ println ("લિંક્ડલિસ્ટ એલિમેન્ટ્સ છે");

સિસ્ટમ આઉટ પ્રિન્ટ (" t" + l1); }}

નીચે પ્રમાણે વાક્યરચનાનું આઉટપુટ નીચે મુજબ છે.

અરેલીસ્ટ એલિમેન્ટ્સ છે

[જોહ્ન, નેન્સી, મેરી, એલિસ]

લિંક્ડલિસ્ટ એલિમેન્ટ્સ

[સિલ્વીયા, અર્જુન, દીપિકા, સુસાન]

ઉપરના કોડમાંથી તે અત્યંત સ્પષ્ટ છે કે બંને અરેલીસ્ટ અને લિંક્ડલિસ્ટ નિવેશ ક્રમમાં જાળવે છે.

તે કેવી રીતે અલગ પડે છે?

પદ્ધતિઓ અને વર્ણનો:

સેટ અને યાદીની તેની પોતાની રીત છે અને ચાલો આપણે અહીંના કેટલાકને જોઈએ.

એસ. ના

  • સેટ - પદ્ધતિઓ

સૂચિ - પદ્ધતિઓ

1 ઍડ () - સંગ્રહમાં વસ્તુઓ ઉમેરવાનું છે.
રદબાતલ ઉમેરો (ઇન્ટ ઇન્ડેક્સ, ઑબ્જેક્ટ ઑબ્જે) - તે ઑબ્જેક્ટ ઓબ્જેજને ઇન્વોકિંગ લિસ્ટના ચોક્કસ ઇન્ડેક્સમાં ઉમેરે છે અને તે ખાતરી કરે છે કે પાછલા ઘટકોને બદલીને કોઈ તત્વ ઓવરરાઇટ નથી. 2 સ્પષ્ટ () - તે સંગ્રહમાંથી વસ્તુઓ દૂર કરવા માટે છે.
બુલિયન ઍડ ઍલ (ઇન્ટ ઇન્ડેક્સ, કલેક્શન સી) - તે આખું સંગ્રહ 'સી' ને ઇન્વોકિંગ લિસ્ટમાં ઉમેરે છે અને 'ઇન્ડેક્સ' પર સ્પષ્ટ થયેલ છે. તે એ પણ સુનિશ્ચિત કરે છે કે કોઈ તત્વો ફરીથી લખાઈ નથી. અમે વળતર મૂલ્યનું પરીક્ષણ કરીને તેના ઓપરેશનની ચોકસાઈને પણ તપાસ કરી શકીએ છીએ. ફેરફાર સફળ થાય તો તે 'સાચું' આપે છે, તે 'ખોટા' મૂલ્ય આપે છે. 3 સમાવે છે () - તે ચકાસવા માટે છે કે શું સેટમાં તે ચોક્કસ ઑબ્જેક્ટ ધરાવે છે. જો સેટ સેટમાં હાજર હોય તો તે 'true' મૂલ્ય આપે છે.
ઑબ્જેક્ટ ગેટ (ઇન્ટ ઇન્ડેક્સ) - તે ચોક્કસ ઈન્ડેક્સમાં તત્વ અથવા ઑબ્જેક્ટ આપે છે. 4 ખાલી છે () - સંગ્રહ તે કોઈ ઘટકો તરીકે મદદ કરે છે કે નહીં તે નક્કી કરવા માટે છે. જો કોઈ તત્વ ન હોય તો તે 'સાચું' મૂલ્ય આપે છે.
ઇન્ટ છેલ્લાઅંતિમઅવર્ણતા (પદાર્થ obj) - તે indexOf () મેથડના વિપરીત સમાન કામ કરે છે. તે સ્પષ્ટ ઑબ્જેક્ટ 'obj' ની છેલ્લી ઘટના આપે છે અને જો સૂચિમાં આવું કોઈ વસ્તુ ન હોય તો મૂલ્ય '1' પરત કરવામાં આવે છે. એના પરિણામ રૂપે, તે નો ઉપયોગ કરી શકાય છે () સેટ ઇન્ટરફેસની રીત. 6 દૂર કરો () - તે પદ્ધતિથી પરિમાણ તરીકે તેને સ્પષ્ટ કરીને સંગ્રહમાંથી એક ઘટક દૂર કરવાનો છે.
લિસ્ટ ઇયેટરર લિસ્ટ ઇએટરએટર () - તે યાદીના પ્રારંભિક અનુક્રમણિકામાં ઇરેરેટરને પાછું આપે છે. 7 કદ () - તે સંગ્રહ અથવા ઘટકોની સંખ્યાને ગણતરી કરવા માટે છે.
લિસ્ટ ઇએટેરર લિસ્ટ ઇએટરએર (ઇન્ટ ઇન્ડેક્સ) - તે ચોક્કસ ઇન્ડેક્સથી શરૂ થતી ઇન્વોગિંગ સૂચિમાંથી પસાર થવામાં મદદ કરે છે. 8 - પદાર્થ દૂર (ઈન્ ઇન્ડેક્સ) -
તે નિર્દિષ્ટ 'ઇન્ડેક્સ' પર ઑબ્જેક્ટ રદ કરે છે અને પરિણામે કાઢી નાખેલ તત્વ આપે છે. તે કાઢી નાંખવાનું પ્રતિબિંબિત કરવા માટે અસરકારક યાદી સૂચકાંકો પણ ઘટે છે. 9 - ઑબ્જેક્ટ સેટ (ઇન્ટ ઇન્ડેક્સ, ઓબ્જેક્ટ ઑબ્જે) -
ઓબ્જેક્ટ 'ઓબ્જે' ને ચોક્કસ ઇન્ડેક્સમાં ઇન્વોગિંગ લિસ્ટમાં સોંપવાની છે. 10 - સૂચિની સૂચિ (પૂર્ણાંક, પૂર્ણાંક) ની યાદી -
તે સૂચિમાં ઇન્ડેક્સ 'શરૂઆત' થી 'ઇન્ડેક્સ' અંત સુધીના ઑબ્જેક્ટ્સનો સમાવેશ કરવાનું છે જે પદ્ધતિને લાગુ કરે છે. નિવેશ ઑર્ડર જાળવણી: સેટ ક્યારેય તે ઘટકોનો ક્રમ જાળવી રાખે છે જેમાં તે શામેલ થાય છે જ્યારે યાદી તેની જાળવણી કરે છે. LinkedHashSet માટે આ નિયમમાં એક અપવાદ છે કારણ કે તે દાખલ કરવાના હુકમનું સંચાલન કરે છે, પરંતુ અન્ય સેટ જેમ કે હેશેટ અને ટ્રીસેટ એ તત્વોને સંગ્રહિત કરતા પહેલાં ગોઠવે છે. એ જ નીચે ઉદાહરણો સાથે વર્ણવવામાં આવે છે. સેટ કરો
  • ઇનપુટ: કેટ, ડૉલ, એપલ

આ સંગ્રહિત: એપલ, કેટ, ડોલ.

યાદી ઇનપુટ: કેટ, ડૉલ, એપલ

સંગ્રહિત: કેટ, ડૉલ, એપલ

ડુપ્લિકેટ્સની હાજરી:

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

ઇનપુટ સેટ કરો: 10, 20, 20, 50.

  • તરીકે સંગ્રહિત: 10, 20, 50.

સૂચિ ઇનપુટ: 10, 20, 20, 50.

જેમ સંગ્રહિત: 10, 20, 20, 50.

નલ મૂલ્યો:

સેટમાં ફક્ત એક નલ મૂલ્ય હોઈ શકે છે જ્યારે એક સૂચિમાં એકથી વધુ નલ મૂલ્ય હોઈ શકે છે અને કોઈપણ સંખ્યાની મર્યાદિત નથી.

ઇનપુટ સેટ કરો: નલ, નલ, મેન, ડોગ, પ્લેન.

  • તરીકે સંગ્રહિત: નલ, ડોગ, મેન, પ્લેન.

યાદી ઇનપુટ: નલ, નલ, મેન, ડોગ, પ્લેન.

તરીકે સંગ્રહિત: નલ, નલ, માણસ, ડોગ, પ્લેન.

ઇએટેરાઅર અને લિસ્ટ ઇએટરએટરનો ઉપયોગ:

ઇટરએટર મેથડ સેટ અને લિસ્ટિંગ બંને સાથે સારી રીતે કાર્ય કરે છે જ્યારે પદ્ધતિ યાદી ઇએટરએટર યાદી સાથે જ કાર્ય કરે છે. સૂચિ આ યાદી મારફતે આગળ અને પાછળથી પસાર કરવા માટે ListIterator નો ઉપયોગ કરી શકાય છે.

લેગસી વર્ગની હાજરી:

  • સેટમાં કોઈ વારસો વર્ગ નથી, જ્યારે યાદી ઇન્ટરફેસમાં 'વેક્ટર' તરીકે ઓળખાતી વારસો છે. વેક્ટર સૂચિ ઇન્ટરફેસનો ઉપયોગ કરે છે અને તેથી તે નિવેશનો ક્રમ જાળવી રાખે છે. સિંક્રોનાઇઝેશન પ્રયત્નોને કારણે, વધારા, કાઢી નાંખવાનું અને અપડેટ્સમાં વેક્ટરનું પ્રદર્શન થોડી ધીમું છે.

અમલીકરણો:

  • સેટ અમલીકરણોના થોડા હેશસેટ, લિંક્ડહાસેટ અને ટ્રીસેટ છે. સૂચિના અમલીકરણમાંના કેટલાકમાં અરેલીસ્ટ અને લિંક્ડલિસ્ટ સામેલ છે.

સેટ અને સૂચિનો ક્યારે ઉપયોગ કરવો?

  • સેટ અને લિસ્ટનો ઉપયોગ નિવેશ ક્રમમાં જાળવણીની જરૂરિયાત પર સ્પષ્ટપણે આધારિત છે.જેમ આપણે શીખ્યા છે કે સેટ ક્યારેય નિવેશનો ક્રમ જાળવતો નથી, તેનો ઉપયોગ જ્યારે ઓછો મહત્વના હોય ત્યારે થાય છે. તેવી જ રીતે, સૂચિનો ઉપયોગ જ્યારે પણ તમે નિવેશની ક્રમ જાળવવાની જરૂર હોય ત્યારે.

કોઠા સ્વરૂપમાં તફાવતો:

એસ. ના

તફાવતો

સેટ કરો

સૂચિ 1 નિવેશ આદેશ તે નિવેશ ક્રમમાં જાળવે છે પ્રથમ શામેલ પ્રથમ અવશેષો અને તેથી તેના મૂલ્યને ધ્યાનમાં લીધા વગર.
તે નિવેશ હુકમ ક્યારેય જાળવતું નથી 2 પદ્ધતિઓ તે પદ્ધતિઓનો ઉપયોગ કરે છે જેમ કે ઍડ (), સ્પષ્ટ (), (), સમાવે છે (), ખાલી છે (), દૂર કરો () અને કદ ().
તે પદ્ધતિઓનો ઉપયોગ કરે છે જેમ કે ઍડ (), ઍડઅલ (), ગેટ (), લાસ્ટઇનેન્ડઓફ (), લિસ્ટ ઇરિટેરર () પેરામીટર સાથે અથવા વગર, દૂર કરો (), સેટ (), અને સબલિસ્ટ (). 3 ડુપ્લિકેટ્સ તે ડુપ્લિકેટ્સને ક્યારેય મંજૂરી આપતું નથી અને આવા દેખાવના કિસ્સામાં, મૂલ્યને ફરીથી લખવામાં આવે છે
તે ડુપ્લિકેટ્સને મંજૂરી આપે છે 4 નલ મૂલ્યો મહત્તમ પર માત્ર એક નલ મૂલ્ય હોઈ શકે છે.
તેમાં કોઈ સંખ્યાબંધ નલ કિંમતો હોઈ શકે છે. 5 ઈટરરેટરનો ઉપયોગ () અને લિસ્ટ ઇએટરએટર () તે માત્ર પદ્ધતિ ઇરેરેટરનો ઉપયોગ કરે છે ().
તે બન્ને ઇરેરેટર () અને લિસ્ટ ઇએટેરર () નો ઉપયોગ કરે છે. 6 લેગસી વર્ગની હાજરી કોઈ લેગસી વર્ગ નથી.
લેગસી વર્ગને વેક્ટર તરીકે કહેવામાં આવે છે. 7 અમલીકરણો સેટ ઈન્ટરફેસ અમલીકરણોમાંના થોડા હેશસેટ, લિન્ક્ડહાસેટ અને ટ્રી સેટ છે.
સૂચિ ઇન્ટરફેસ અમલીકરણોમાંના કેટલાક લિંક્ડલિસ્ટ અને અરેલીસ્ટ છે. આશા, અમે સમૂહ અને યાદી વચ્ચેના દરેક શક્ય તફાવતને સમાવ્યાં છે. જો તમને લાગે કે અમે કંઈક ચૂકી છે, તો કૃપા કરી અમને જણાવો