జావాలో అర్రేలిస్ట్ మరియు వెక్టర్ మధ్య వ్యత్యాసం

రచయిత: Laura McKinney
సృష్టి తేదీ: 1 ఏప్రిల్ 2021
నవీకరణ తేదీ: 1 మే 2024
Anonim
14.4 జావాలో వెక్టర్ vs అర్రేలిస్ట్
వీడియో: 14.4 జావాలో వెక్టర్ vs అర్రేలిస్ట్

విషయము


అర్రేలిస్ట్ మరియు వెక్టర్ రెండూ కలెక్షన్ ఫ్రేమ్‌వర్క్ సోపానక్రమం క్రింద తరగతులు. అర్రేలిస్ట్ మరియు వెక్టర్, రెండూ డైనమిక్ శ్రేణి వస్తువులను సృష్టించడానికి ఉపయోగిస్తారు, ఇక్కడ శ్రేణి పరిమాణంలో మరియు అవసరమైనప్పుడు పెరుగుతుంది. అర్రేలిస్ట్ మరియు వెక్టర్‌ను వేరుచేసే రెండు ప్రాథమిక తేడాలు ఏమిటంటే, వెక్టర్ లెగసీ తరగతులకు చెందినది, తరువాత సేకరణ తరగతులకు మద్దతు ఇవ్వడానికి పునర్నిర్మించబడింది, అయితే, అర్రేలిస్ట్ ఒక ప్రామాణిక సేకరణ తరగతి. మరో ముఖ్యమైన వ్యత్యాసం ఏమిటంటే, అర్రేలిస్ట్ మరోవైపు సమకాలీకరించబడదు; వెక్టర్ సమకాలీకరించబడింది.

క్రింద చూపిన పోలిక చార్ట్ సహాయంతో మరికొన్ని తేడాలను అధ్యయనం చేద్దాం.

  1. పోలిక చార్ట్
  2. నిర్వచనం
  3. కీ తేడాలు
  4. సారూప్యతలు
  5. ముగింపు

పోలిక చార్ట్

పోలిక కోసం ఆధారంArrayListవెక్టర్
ప్రాథమికశ్రేణి జాబితా తరగతి సమకాలీకరించబడలేదు.వెక్టర్ క్లాస్ సమకాలీకరించబడింది.
లెగసీ క్లాస్శ్రేణి జాబితా ప్రామాణిక సేకరణ తరగతి.వెక్టర్ ఒక లెగసీ క్లాస్, సేకరణ తరగతికి మద్దతుగా తిరిగి ఇంజనీరింగ్ చేయబడింది.
తరగతి ప్రకటనతరగతి శ్రేణి జాబితాతరగతి వెక్టర్
కేటాయింపుకుపేర్కొననప్పుడు అర్రేలిస్ట్ దాని పరిమాణంలో సగం పెరుగుతుంది.పేర్కొనబడనప్పుడు, వెక్టర్ దాని పరిమాణాన్ని రెట్టింపు చేయడానికి పెంచబడుతుంది.
ప్రదర్శనశ్రేణి జాబితా సమకాలీకరించబడనందున, ఇది వెక్టర్ కంటే వేగంగా పనిచేస్తుంది.వెక్టర్ సమకాలీకరించబడినందున, ఇది అర్రేలిస్ట్ కంటే నెమ్మదిగా పనిచేస్తుంది.
ఎన్యుమరేషన్ / ఇటెరేటర్అర్రేలిస్ట్‌లో నిల్వ చేయబడిన వస్తువులను ప్రయాణించడానికి అర్రేలిస్ట్ ఇటేరేటర్ ఇంటర్‌ఫేస్‌ను ఉపయోగిస్తుంది.వెక్టర్లలో నిల్వ చేయబడిన వస్తువులను దాటడానికి వెక్టర్ ఎన్యూమరేషన్ మరియు ఐటెరేటర్ ఇంటర్ఫేస్ను ఉపయోగిస్తుంది.


శ్రేణి జాబితా యొక్క నిర్వచనం

అర్రేలిస్ట్ ప్రామాణిక సేకరణ తరగతుల జాబితాకు చెందినది. తరగతి శ్రేణి జాబితా లోపల నిర్వచించబడింది java.util ప్యాకేజీ, ఇది విస్తరించింది AbstractList తరగతి ఇది ప్రామాణిక సేకరణ తరగతి, మరియు ఇది కూడా అమలు చేస్తుంది జాబితా, కలెక్షన్ ఇంటర్‌ఫేస్‌లలో నిర్వచించిన ఇంటర్ఫేస్. జావాలో, ప్రామాణిక శ్రేణి ఎల్లప్పుడూ స్థిర పొడవుతో ఉంటుంది. అంటే ఒకసారి సృష్టించబడినది; ఇది డైనమిక్‌గా పెరుగుతుంది లేదా పరిమాణంలో కుదించదు. కాబట్టి, మీరు ఉపయోగిస్తున్న శ్రేణి యొక్క పొడవు గురించి మీకు ముందస్తు జ్ఞానం ఉండాలి. కానీ, కొన్నిసార్లు ఈ రకమైన పరిస్థితిని నిర్వహించడానికి అవసరమైన పొడవు రన్‌టైమ్‌లో తెలుస్తుంది, జావా అర్రేలిస్ట్‌ను ప్రవేశపెట్టింది.

అర్రేలిస్ట్ అనేది వస్తువుల సూచనలను కలిగి ఉన్న శ్రేణి యొక్క డైనమిక్ సృష్టి కోసం ఉపయోగించే తరగతి. ఈ శ్రేణి అవసరమైనప్పుడు మరియు పరిమాణంలో పెరుగుతుంది. తరగతి ప్రకటన క్రింది విధంగా ఉంది:

తరగతి శ్రేణి జాబితా

ఇక్కడ, శ్రేణి కలిగి ఉన్న వస్తువుల రకాన్ని E నిర్దేశిస్తుంది. సృష్టించిన శ్రేణి వేరియబుల్ పొడవుతో ఉంటుంది మరియు జాబితా నుండి వస్తువులను జోడించినప్పుడు లేదా తీసివేసినప్పుడు అది పెరుగుతుంది మరియు పరిమాణంలో తగ్గుతుంది.


శ్రేణి జాబితా సమకాలీకరించబడలేదు అంటే, ఒకటి కంటే ఎక్కువ థ్రెడ్‌లు ఒకే సమయంలో శ్రేణిలో పనిచేయగలవు. ఉదాహరణకు, ఒక థ్రెడ్ శ్రేణికి ఆబ్జెక్ట్ రిఫరెన్స్‌ను జోడిస్తుంటే మరియు మరొక థ్రెడ్ ఒకే అర్రే నుండి ఒకే సమయంలో ఆబ్జెక్ట్ రిఫరెన్స్‌ను తొలగిస్తుంటే. అర్రేలిస్ట్ క్లాస్ ఉపయోగించి డైనమిక్ అర్రే యొక్క సృష్టి:

ArrayList S1 = క్రొత్త శ్రేణి జాబితా(); System.out.ln ("S1 యొక్క ప్రారంభ పరిమాణం:" + S1.size ()); S1.add ( "టీ"); S1.add ( "సి"); S1.add ( "H"); S1.add (1, "E"); System.out.ln ("అదనంగా S1 కలిగి:" + S1); System.out.ln ("అదనంగా S1 పరిమాణం:" + S1.size ()); S1.remove ("T"); ఎస్ 1.రెమోవ్ (2); System.out.ln ("తొలగించిన తరువాత S1 లో ఇవి ఉన్నాయి:" + S1); System.out.ln ("తొలగించిన తర్వాత S1 పరిమాణం:" + S1.size ()); // S1: 0 యొక్క అవుట్పుట్ ప్రారంభ పరిమాణం అదనంగా S1 కలిగి: అదనంగా S1 యొక్క పరిమాణం: 4 తొలగించిన తరువాత S1 కలిగి ఉంటుంది: తొలగించిన తరువాత S1 పరిమాణం: 2

పై కోడ్‌లో, మీరు దానిని చూడవచ్చు; నేను స్ట్రింగ్ రకం వస్తువుల శ్రేణిని సృష్టించాను. నేను యాడ్ () పద్ధతిని ఉపయోగించి శ్రేణి S1 కు కొన్ని వస్తువులను జోడించాను, తరువాత తొలగించు () పద్ధతిని ఉపయోగించి కొన్ని వస్తువులను తొలగించాను. మీరు శ్రేణి యొక్క ప్రారంభ పరిమాణాన్ని పేర్కొనకపోతే అది ‘0’ పొడవు ఉంటుంది. మీరు ఎలిమెంట్స్‌ని జోడించి, తొలగించేటప్పుడు శ్రేణి పెరుగుతుంది మరియు పరిమాణంలో తగ్గిపోతుంది.

వెక్టర్ యొక్క నిర్వచనం

వెక్టర్ ఒక లెగసీ క్లాస్, ఇది కలెక్షన్ ఫ్రేమ్‌వర్క్ సోపానక్రమంలో సేకరణ తరగతికి మద్దతు ఇవ్వడానికి పునర్నిర్మించబడింది. వెక్టర్ క్లాస్ కూడా లో నిర్వచించబడింది java.util ప్యాకేజీ, విస్తరించింది AbstractList తరగతి మరియు అమలు జాబితా ఇంటర్ఫేస్. వెక్టర్ క్లాస్‌ను ఫాలోగా ప్రకటించారు:

తరగతి వెక్టర్

ఇక్కడ, శ్రేణిలో నిల్వ చేయబడే వస్తువు రకాన్ని E నిర్వచిస్తుంది. వెక్టర్ క్లాస్ ఉపయోగించి సృష్టించబడిన శ్రేణి వేరియబుల్ పొడవు. ఇంక్రిమెంట్ పేర్కొనకపోతే ఇది దాని పరిమాణాన్ని రెట్టింపు చేస్తుంది. వెక్టర్ ఉపయోగించి శ్రేణి యొక్క సృష్టిని అర్థం చేసుకుందాం.

వెక్టర్ వి = కొత్త వెక్టర్(1,1); V.addElement ( "టెక్"); V.addElement ( "తేడాలు"); System.out.ln ("2 అదనంగా తర్వాత సామర్థ్యం:" + V. సామర్థ్యం ()); V.addElement ( "మధ్య"); V.addElement ( "వెక్టర్స్"); System.out.ln ("ప్రస్తుత సామర్థ్యం:" + V.capacity ()); 2 అదనంగా 2 అవుట్పుట్ సామర్థ్యం: 2 ప్రస్తుత సామర్థ్యం: 4

స్ట్రింగ్ ఆబ్జెక్ట్‌ల శ్రేణిని ప్రకటించేటప్పుడు, పైన పేర్కొన్న కోడ్‌లో నేను ప్రత్యేకంగా వెక్టర్ యొక్క కన్స్ట్రక్టర్‌లో పరిమాణం మరియు ఇంక్రిమెంట్ విలువను పేర్కొన్నాను. అందువల్ల, శ్రేణి యొక్క పరిమితి ముగిసినప్పుడు, డిక్లరేషన్ చేసేటప్పుడు ఇది కన్స్ట్రక్టర్‌కు అందించిన విలువ ద్వారా పెరుగుతుందని మీరు గమనించవచ్చు.

  1. బహుళ థ్రెడ్‌లు ఒకే సమయంలో అర్రేలిస్ట్‌లో పనిచేయగలవు, కనుక ఇది పరిగణించబడుతుంది unsynchronized. అర్రేలిస్ట్ మాదిరిగా కాకుండా, ఒకే థ్రెడ్ మాత్రమే ఒక సమయంలో వెక్టర్‌లో పనిచేయగలదు; అందుకే దీనిని అంటారు సింక్రొనైజ్.
  2. జావా యొక్క ప్రారంభ సంస్కరణలో, కొన్ని తరగతులు మరియు ఇంటర్‌ఫేస్‌లు వాటిని లెగసీ క్లాసులు అని పిలిచే వస్తువులను నిల్వ చేసే పద్ధతులను అందిస్తాయి, జావా యొక్క లెగసీ తరగతిలో వెక్టర్ ఒకటి. తరువాత, ఈ లెగసీ తరగతులు కలెక్షన్ క్లాస్‌కు మద్దతు ఇవ్వడానికి పునర్నిర్మించబడ్డాయి, అయితే అర్రేలిస్ట్ క్లాస్ ఒక ప్రామాణిక కలెక్షన్ క్లాస్.
  3. శ్రేణి యొక్క పరిమితి పూర్తిగా ఉపయోగించబడినప్పుడు మరియు అయిపోయిన శ్రేణి పక్కన ఒక కొత్త వస్తువు జోడించబడినప్పుడు, దాని పరిమాణం రెండు సందర్భాల్లోనూ పెరుగుతుంది, అంటే అర్రేలిస్ట్‌లో మరియు వెక్టర్‌లో అయితే, తేడా ఏమిటంటే, అర్రేలిస్ట్‌లో, పరిమాణాన్ని పేర్కొనకపోతే ప్రస్తుత శ్రేణిలో 50% పెంచబడుతుంది, అయితే ఇంక్రిమెంట్ విలువ పేర్కొనకపోతే వెక్టర్ శ్రేణి పరిమాణంలో రెట్టింపు అవుతుంది.
  4. వెక్టర్ ఒక శ్రేణిని దాటడానికి ఎన్యూమరేషన్ మరియు ఐటెరేటర్‌ను ఉపయోగిస్తుంది, అయితే, అర్రేలిస్ట్ శ్రేణిని దాటడానికి ఇరేటర్‌ను మాత్రమే ఉపయోగిస్తుంది.
  5. అర్రేలిస్ట్ సమకాలీకరించబడనందున మరియు అనేక థ్రెడ్‌లు ఒకే సమయంలో దానిపై పనిచేయగలవు కాబట్టి దాని పనితీరు వెక్టర్ కంటే మెరుగ్గా ఉంటుంది, దానిపై ఒకేసారి ఒక థ్రెడ్ మాత్రమే పనిచేయగలదు.

సారూప్యతలు:

  1. అర్రేలిస్ట్ మరియు వెక్టర్ రెండూ java.util ప్యాకేజీలో నిర్వచించబడ్డాయి.
  2. అర్రేలిస్ట్ మరియు వెక్టర్ రెండూ అబ్‌స్ట్రాక్ట్ లిస్ట్ క్లాస్‌ను విస్తరిస్తాయి.
  3. అర్రేలిస్ట్ మరియు వెక్టర్ రెండూ జాబితా ఇంటర్‌ఫేస్‌ను అమలు చేస్తాయి.
  4. అర్రేలిస్ట్ మరియు వెక్టర్స్ రెండూ డైనమిక్ శ్రేణిని సృష్టించడానికి ఉపయోగిస్తారు, అది అవసరమైన విధంగా పెరుగుతుంది.
  5. అర్రేలిస్ట్ మరియు వెక్టర్ రెండూ ఆబ్జెక్ట్ రిఫరెన్స్‌లను కలిగి ఉంటాయి.

ముగింపు:

వెక్టర్‌ను ఉపయోగించడం కంటే అర్రేలిస్ట్ వాడకం మంచిదని, ఇది వేగంగా మరియు మెరుగ్గా పనిచేస్తుందని చెప్పడం ద్వారా నేను ముగించాను.