TreeSet దాని ప్రాథమిక నిల్వ రకంగా చెట్టును ఉపయోగించే అత్యంత ప్రాథమిక క్రమబద్ధీకరణ అమలులలో ఒకటిగా పరిగణించబడుతుంది. TreeSetలో, ప్రతి విలువ క్రమబద్ధీకరించబడిన క్రమంలో నిల్వ చేయబడుతుంది. డిఫాల్ట్గా, అన్ని సంఖ్యా విలువలు ఆరోహణ క్రమంలో ఉంచబడతాయి మరియు స్ట్రింగ్లు నిఘంటువు-ఆధారిత క్రమంలో నిర్వహించబడతాయి. TreeSet ఆరోహణ మరియు నిఘంటువు-ఆధారిత క్రమాన్ని పోల్చదగినది పేర్కొనబడినా లేదా పేర్కొనకపోయినా నిర్వహిస్తుంది. సెట్ ఇంటర్ఫేస్ను సరిగ్గా అమలు చేయడానికి, TreeSet తప్పనిసరిగా పోల్చదగిన దానికి అనుగుణంగా ఉండాలి. అంతేకాకుండా, TreeSetలో శూన్య విలువలు ఆమోదయోగ్యం కాదు.
ఉదాహరణ 1
TreeSet లోపల మూలకాలను జోడించడానికి add() పద్ధతి అవసరం. TreeSet సృష్టించబడినప్పుడు అదే సార్టింగ్ క్రమాన్ని ఉపయోగించి పేర్కొన్న మూలకం జోడించబడుతుంది. ఇది డూప్లికేట్ ఎంట్రీలను జోడించదు.
మునుపటి కోడ్ లోపల, మేము జావా యొక్క తరగతులు మరియు పద్ధతులను యాక్సెస్ చేయడానికి జావా యొక్క యుటిలిటీ క్లాస్ని చొప్పించాము. తరువాత, 'CreatingTreeSet' తరగతి నిర్వచనంలో ప్రధాన() పద్ధతి జతచేయబడింది. మేము ప్రధాన() పద్ధతిలో TreeSet కోడ్ని పరీక్షించాము. మేము మొదట TreeSet తరగతి నుండి వేరియబుల్ “వ్యక్తి”ని సృష్టించాము మరియు డిక్లేర్డ్ వేరియబుల్ “వ్యక్తులు”లో ఖాళీ TreeSet ఇంటర్ఫేస్ను సెట్ చేసాము.
TreeSet యొక్క డేటా రకం దాని ఇంటర్ఫేస్ను సృష్టించే సమయంలో పేర్కొనబడినందున మేము స్ట్రింగ్ మూలకాలను మాత్రమే జోడించామని గమనించండి. మేము TreeSetలో ఐదు స్ట్రింగ్ మూలకాలను చొప్పించాము, ఇక్కడ ప్రతి స్ట్రింగ్ మూలకం ప్రత్యేకంగా ఉంటుంది. అప్పుడు, మేము ట్రీసెట్ యొక్క ప్రతి మూలకాన్ని ఇటరేటర్() పద్ధతి నుండి దాటాము, ఇది అవుట్పుట్ స్క్రీన్పై ఆరోహణ క్రమంలో ముద్రించబడుతుంది.
TreeSet ఇంటర్ఫేస్ని ఉపయోగించి సృష్టించబడిన మూలకాలు క్రింది అవుట్పుట్ స్నాప్లో అవుట్పుట్గా పొందబడతాయి:
ఉదాహరణ 2
ట్రీసెట్ని సృష్టించిన తర్వాత, ట్రీసెట్ ద్వారా మద్దతిచ్చే అంతర్నిర్మిత పద్ధతిని ఉపయోగించి మూలకాలను యాక్సెస్ చేయవచ్చు. కలిగి() పద్ధతి TreeSetలోని నిర్దిష్ట మూలకాన్ని తనిఖీ చేస్తుంది. మొదటి() పద్ధతి TreeSet యొక్క ప్రారంభ మూలకాన్ని తిరిగి పొందుతుంది, అయితే చివరి() పద్ధతి TreeSet యొక్క ముగింపు మూలకాన్ని తిరిగి పొందుతుంది.
యుటిలిటీ క్లాస్ని దిగుమతి చేసిన తర్వాత, మేము 'యాక్సెస్ట్రీసెట్' క్లాస్ని నిర్వచించాము. తర్వాత, మేము TreeSet మూలకాలను యాక్సెస్ చేయడానికి పేర్కొన్న జావా క్లాస్లో ప్రధాన() పద్ధతిని అమలు చేసాము. మేము TreeSet తరగతికి సంబంధించి NavigableSet రకం 'రంగుల' వస్తువును ప్రకటించాము. TreeSet() ఖాళీగా ఉంది, ఇది add() పద్ధతిని అమలు చేయడం ద్వారా స్ట్రింగ్ విలువలతో జోడించబడుతుంది. ఇక్కడ, మేము మూడు స్ట్రింగ్ విలువలను జోడించాము, వివిధ రంగుల పేరు. ఆ తర్వాత, ట్రీసెట్ విలువలు ప్రింట్ స్టేట్మెంట్ ద్వారా స్క్రీన్పై ప్రదర్శించబడతాయి. తరువాత, తనిఖీ చేయడానికి స్ట్రింగ్ ప్రారంభించబడిన వేరియబుల్ “కనుగొను”ని మేము సృష్టించాము. అందించిన ట్రీస్లో స్ట్రింగ్ ఉందో లేదో తనిఖీ చేయడానికి, మేము కలిగి ఉన్న() పద్ధతిని పిలుస్తాము మరియు “కనుగొను” వేరియబుల్ను పారామీటర్గా జోడించాము. Contains() పద్ధతి TreeSet నుండి పేర్కొన్న స్ట్రింగ్ మూలకం యొక్క ఉనికిని ధృవీకరిస్తుంది మరియు బూలియన్ ఫలితాలను ఉత్పత్తి చేస్తుంది. ఇంకా, మేము మొదటి() పద్ధతి మరియు చివరి() పద్ధతి నుండి ట్రీసెట్లోని మొదటి మరియు చివరి మూలకాన్ని కూడా పొందాము. అందించిన ట్రీసెట్లో మొదటి మరియు చివరి స్థానంలో ఉంచబడిన నిర్దిష్ట మూలకాన్ని రెండు పద్ధతులు ఉత్పత్తి చేస్తాయి.
కలిగి() పద్ధతి నుండి నిర్దిష్ట స్ట్రింగ్ యొక్క తనిఖీ నిజమైన విలువను అందిస్తుంది, ఇది స్ట్రింగ్ మూలకం కలిగి() పద్ధతిలో భాగమని చూపుతుంది. తరువాత, TreeSet యొక్క మొదటి విలువ మరియు చివరి విలువ కూడా క్రింద ప్రదర్శించబడతాయి:
ఉదాహరణ 3
మునుపటి ఉదాహరణలో మొదటి మరియు చివరి మూలకం యాక్సెస్ చేయబడింది. అత్యధిక మరియు అత్యల్ప మూలకాలను యాక్సెస్ చేయడానికి మరియు తొలగించడానికి, pollFirst() మరియు pollLast() పద్ధతి ఉపయోగించబడుతుంది. పోల్ఫస్ట్() పద్ధతి మొదటి నుండి అత్యల్ప మూలకాన్ని తిరిగి పొందడానికి మరియు తీసివేయడానికి ఉపయోగించబడుతుంది. TreeSet చివరి నుండి అత్యధిక మూలకాన్ని గుర్తించడానికి మరియు తొలగించడానికి పోల్లాస్ట్() పద్ధతి వర్తించబడుతుంది.
ప్రోగ్రామ్ జావా క్లాస్ 'LowerAndHigherValueFromTreeSet'తో స్థాపించబడింది, ఇక్కడ ప్రధాన() పద్ధతిని నిర్మించారు. ఇక్కడ, మేము ఆబ్జెక్ట్ “IntegerSet”ని ప్రకటించడం ద్వారా TreeSet తరగతి నుండి TreeSet ఇంటర్ఫేస్ను అందించాము. ప్రారంభంలో, మేము add() పద్ధతిని ఉపయోగించడం ద్వారా మూలకంతో జోడించబడే ఖాళీ TreeSetని సృష్టించాము. యాడ్() పద్ధతిని ఉపయోగించి పూర్ణాంక అంశాలు ట్రీసెట్లోకి లోడ్ చేయబడతాయి.
ఆ తర్వాత, పోల్ఫస్ట్() పద్ధతి మరియు పోల్లాస్ట్() ఉపయోగించి ప్రింట్ స్టేట్మెంట్ ఇచ్చాము. పోల్ఫస్ట్() పద్ధతి పేర్కొన్న ట్రీసెట్ నుండి మొదటి అత్యల్ప మూలకాలను పొందుతుంది. మరోవైపు, పోల్లాస్ట్() పద్ధతి TreeSet చివరి నుండి అత్యధిక మూలకాన్ని పొందుతుంది.
అవుట్పుట్లో TreeSet నుండి అత్యల్ప మరియు అత్యధిక మూలకాన్ని ప్రదర్శించే PolFirst() మరియు pollLast() పద్ధతుల నుండి ఫలితాలు పొందబడ్డాయి.
ఉదాహరణ 4
ట్రీసెట్లో ఉన్న అన్ని అంశాలను క్లియర్ చేయడానికి క్లియర్() పద్ధతి ఉపయోగించబడుతుంది. TreeSetలో స్పష్టమైన() పద్ధతిని అమలు చేసిన తర్వాత ఖాళీ TreeSet తిరిగి ఇవ్వబడుతుంది.
పబ్లిక్ క్లాస్ “క్లియర్ట్రీసెట్” మునుపటి ప్రోగ్రామ్లోని మెయిన్() పద్ధతితో సెట్ చేయబడింది. మేము అక్కడ ఖాళీ ట్రీసెట్ని రూపొందించాము, ఇది TreeSet క్లాస్ వేరియబుల్ “SetElements”లో సెట్ చేయబడింది. అప్పుడు, మేము TreeSet లోపల add() పద్ధతి సహాయంతో యాదృచ్ఛిక సంఖ్యలను చొప్పించాము. తరువాత, మేము దానిలోని మూలకాలను చూపించడానికి ట్రీసెట్ను ముద్రించాము. ప్రదర్శించిన తర్వాత, మేము TreeSet క్లియర్ చేయడానికి స్పష్టమైన() పద్ధతిని ఉపయోగించాము.
ఉదాహరణ 5
ట్రీసెట్ వైవిధ్య మూలకాల జోడింపును అనుమతించదు. మేము తరగతి యొక్క భిన్నమైన వస్తువులను జోడించడానికి ప్రయత్నిస్తే, రన్టైమ్ సమయంలో “classCastException” విసిరివేయబడుతుంది. ట్రీసెట్ సజాతీయ మరియు పోల్చదగిన వస్తువులను మాత్రమే అంగీకరిస్తుంది.
మేము TreeSet ఇంటర్ఫేస్ని సెట్ చేసిన జావా క్లాస్ “HeterogenousObjectTreeSet”లో ప్రధాన() పద్ధతిని అమలు చేసాము. ట్రీసెట్ ఆబ్జెక్ట్ “చార్సెట్”లో నిర్వచించబడింది. అప్పుడు మూలకాలు TreeSet యొక్క 'CharSet' వస్తువుకు జోడించబడతాయి. మేము StringBuffer ఇంటర్ఫేస్తో పోల్చదగిన మూలకాలను చొప్పించాము. TreeSet లోపల చివరి మూలకం భిన్నమైనది, ఇది పూర్ణాంకం విలువ. అప్పుడు, మేము భిన్నమైన మూలకాన్ని తిరిగి పొందడం యొక్క ఫలితాలను పొందడానికి TreeSet మూలకాలను ముద్రించాము.
TreeSet యొక్క మొదటి సూచిక విలువ ప్రదర్శించబడలేదని ఫలితాలు చూపిస్తున్నాయి, కానీ పోల్చదగిన వస్తువుల కారణంగా అన్ని అక్షర అంశాలు స్క్రీన్పై ప్రదర్శించబడతాయి.
ముగింపు
Java TreeSet క్లాస్ HashSet వంటి విలక్షణమైన అంశాలను మాత్రమే కలిగి ఉంటుంది. TreeSet అనేది దాని వేగవంతమైన ప్రాప్యత మరియు పునరుద్ధరణ వ్యవధి కారణంగా సంబంధిత డేటాను పెద్ద మొత్తంలో నిల్వ చేయడానికి సరైన మార్గం, వేగవంతమైన డేటా ఆవిష్కరణను సులభతరం చేస్తుంది. పత్రం దాని డిక్లరేషన్తో సహా ట్రీసెట్ క్లాస్ యొక్క ఫండమెంటల్స్ను కవర్ చేస్తుంది. అదనంగా, వివిధ పద్ధతులు మరియు కార్యకలాపాలు కూడా ఇక్కడ చర్చించబడ్డాయి.