జావా ట్రీమ్యాప్ క్లాస్ మ్యాప్ ఇంటర్ఫేస్ని ఉపయోగించి చెట్టు నిర్మాణంలో డేటాను నిల్వ చేస్తుంది. ఈ తరగతి అబ్స్ట్రాక్ట్ మ్యాప్ క్లాస్ని విస్తరిస్తుంది మరియు దాని పేరెంట్ క్లాస్ లాగా, ట్రీమ్యాప్ రెండు రకాల పారామితులను కలిగి ఉంటుంది. దాని రకం పారామీటర్లలో ఒకటి ట్రీమ్యాప్లోని కీలను సూచిస్తుంది, మరొకటి విలువలను సూచిస్తుంది.
TreeMap డేటా నిర్మాణం కీ-విలువ జతలను నిల్వ చేస్తుంది మరియు ఈ డేటాపై CRUD కార్యకలాపాలను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది.
స్క్రీన్ సమయాన్ని ఎలా ఆఫ్ చేయాలి
జావాలో ట్రీమ్యాప్ను ఎలా సృష్టించాలి
ట్రీమ్యాప్ క్లాస్లో నాలుగు కన్స్ట్రక్టర్లు ఉన్నాయి, వీటిని మీరు కొత్త ట్రీమ్యాప్ ఆబ్జెక్ట్ని సృష్టించడానికి ఉపయోగించవచ్చు. డిఫాల్ట్ కన్స్ట్రక్టర్ నాలుగింటిలో అత్యంత ప్రజాదరణ పొందింది. ఈ కన్స్ట్రక్టర్ ఎటువంటి వాదనలు తీసుకోదు మరియు ఖాళీ ట్రీ మ్యాప్ను రూపొందిస్తుంది.
// Create a new tree map
TreeMap<Integer,String> customers = new TreeMap<Integer,String>();
పైన ఉన్న కోడ్ ఖాళీ ట్రీ మ్యాప్ని ఉత్పత్తి చేస్తుంది వినియోగదారులు .
ట్రీమ్యాప్ డేటా స్ట్రక్చర్ను పాపులేటింగ్ చేయడం
ది పెట్టు() పద్ధతి TreeMap వస్తువుకు ఒక అంశాన్ని జోడిస్తుంది. దీనికి రెండు వాదనలు అవసరం-ఒక కీ మరియు దాని విలువ. మీరు ఏదైనా యాదృచ్ఛిక క్రమంలో ట్రీ మ్యాప్కు అంశాలను జోడించవచ్చు మరియు డేటా నిర్మాణం వాటి కీల ప్రకారం వాటిని ఆరోహణ క్రమంలో నిల్వ చేస్తుంది.
// Populate a tree map
customers.put(105, "Jessica Jones");
customers.put(102, "Mark Williams");
customers.put(104, "Phil Blair");
customers.put(101, "Kim Brown");
customers.put(103, "Jim Riley");
పై కోడ్ యాదృచ్ఛిక క్రమంలో ఐదుగురు కస్టమర్లను కస్టమర్ల ట్రీ మ్యాప్కు జోడిస్తుంది.
ట్రీమ్యాప్లో అంశాలను వీక్షించడం
TreeMap తరగతి దాని డేటాను ఒక వస్తువులో నిల్వ చేస్తుంది. కాబట్టి, ట్రీ మ్యాప్లోని అన్ని అంశాలను చూడటానికి మీరు ట్రీ మ్యాప్ ఆబ్జెక్ట్ను కన్సోల్కు ప్రింట్ చేయవచ్చు:
// View all tree map items as an object
System.out.println(customers);
ఎగువ కోడ్ కన్సోల్కు క్రింది అవుట్పుట్ను ప్రింట్ చేస్తుంది:
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
పైన ఉన్న వస్తువు అంశాలను ఆరోహణ క్రమంలో ప్రదర్శిస్తుందని గమనించండి. మీరు ఉపయోగించి ప్రతి అంశాన్ని మరియు దాని సంబంధిత కీని కూడా చూడవచ్చు లూప్ కోసం ఒక జావా .
// View all items with an iterator
for (Entry<Integer, String> customer : customers.entrySet()) {
System.out.println("Key: " + customer.getKey() + " Value: " + customer.getValue());
}
ఎగువ కోడ్ కన్సోల్కు క్రింది అవుట్పుట్ను ప్రింట్ చేస్తుంది:
Key: 101 Value: Kim Brown
Key: 102 Value: Mark Williams
Key: 103 Value: Jim Riley
Key: 104 Value: Phil Blair
Key: 105 Value: Jessica Jones
ట్రీమ్యాప్లోని అంశాలను నవీకరిస్తోంది
TreeMap తరగతి ఇప్పటికే ఉన్న ఐటెమ్ను ఉపయోగించి అప్డేట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది భర్తీ () పద్ధతి. రెండు భర్తీ పద్ధతులు ఉన్నాయి. మొదటి పద్ధతి ఇప్పటికే ఉన్న కీని మరియు మీరు ఇప్పటికే ఉన్న కీని మ్యాప్ చేయాలనుకుంటున్న కొత్త విలువను తీసుకుంటుంది.
// Replace existing value
customers.replace(101,"Kim Smith");
System.out.println(customers);
ఎగువ కోడ్ కన్సోల్లో కింది వస్తువును ముద్రిస్తుంది:
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
మీరు చూడగలరు గా కిమ్ బ్రౌన్ ఇప్పుడు ఉంది కిమ్ స్మిత్ . రెండవ రీప్లేస్() పద్ధతి ఇప్పటికే ఉన్న కీ, కీ ప్రస్తుత విలువ మరియు మీరు కీకి మ్యాప్ చేయాలనుకుంటున్న కొత్త విలువను తీసుకుంటుంది.
// Replace existing value
customers.replace(103,"Jim Riley", "Michelle Noah");
System.out.println(customers);
ఎగువ కోడ్ కన్సోల్లో కింది వస్తువును ముద్రిస్తుంది:
సర్వర్ ip చిరునామా కనుగొనబడలేదు
{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}
పై వస్తువులో మిచెల్ నోహ్ భర్తీ చేస్తుంది జిమ్ రిలే .
ట్రీమ్యాప్ నుండి అంశాలను తొలగిస్తోంది
మీరు చెట్టు మ్యాప్ నుండి ఒక అంశాన్ని తీసివేయాలనుకుంటే, ది తొలగించు() పద్ధతి మీ ఏకైక ఎంపిక. ఇది మీరు తీసివేయాలనుకుంటున్న అంశంతో అనుబంధించబడిన కీని తీసుకుంటుంది మరియు తొలగించబడిన విలువను అందిస్తుంది.
// Remove an item
customers.remove(104);
System.out.println(customers);
ఎగువ కోడ్ని అమలు చేయడం వలన కన్సోల్కు కింది వస్తువు ప్రింట్ చేయబడుతుంది:
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}
ఈ జావా క్లాస్ ఒక కూడా ఉంది స్పష్టమైన () చెట్టు మ్యాప్లోని అన్ని అంశాలను తొలగించడానికి మిమ్మల్ని అనుమతించే పద్ధతి.
ట్రీమ్యాప్ వర్సెస్ హాష్ మ్యాప్ జావా క్లాస్
ట్రీమ్యాప్ మరియు హాష్మ్యాప్ అనేవి రెండు అత్యంత ప్రజాదరణ పొందిన జావా మ్యాప్ తరగతులు. అవి రెండూ అబ్స్ట్రాక్ట్ మ్యాప్ క్లాస్ని విస్తరించాయి. ఈ సంబంధం ట్రీమ్యాప్ మరియు హాష్మ్యాప్ తరగతులకు ఒకే విధమైన ఫంక్షన్లకు యాక్సెస్ని ఇస్తుంది.
అయితే, ఈ రెండు మ్యాప్ తరగతుల మధ్య కొన్ని ముఖ్యమైన తేడాలు ఉన్నాయి. ట్రీమ్యాప్ మ్యాప్ ఇంటర్ఫేస్ యొక్క రెడ్-బ్లాక్ ట్రీ ఇంప్లిమెంటేషన్ను ఉపయోగిస్తుంది, అయితే హాష్ మ్యాప్ హాష్ టేబుల్ను ఉపయోగిస్తుంది. HashMap మిమ్మల్ని ఒకే శూన్య కీని నిల్వ చేయడానికి అనుమతిస్తుంది, TreeMap అలా చేయదు. చివరగా, HashMap TreeMap కంటే వేగంగా ఉంటుంది. మునుపటిది అల్గారిథమిక్ వేగం O(1) అయితే రెండోది O(log(n)).