బిగినర్స్ కోసం జావా స్ట్రీమ్స్: జావాలో స్ట్రీమ్‌లను ఉపయోగించడం గురించి పరిచయం

బిగినర్స్ కోసం జావా స్ట్రీమ్స్: జావాలో స్ట్రీమ్‌లను ఉపయోగించడం గురించి పరిచయం

జావా 8 స్ట్రీమ్‌లు ముందుగా నిర్వచించిన కార్యకలాపాల సమితిని ఉపయోగించి పెద్ద సేకరణ నుండి ఖచ్చితమైన డేటాను సేకరించేందుకు డెవలపర్‌లను అనుమతిస్తాయి.





జావా 8 విడుదలకు ముందు, జావాలో 'స్ట్రీమ్' అనే పదాన్ని ఉపయోగించడం స్వయంచాలకంగా I/O తో అనుబంధించబడుతుంది. ఏదేమైనా, జావా 8 ఒక స్ట్రీమ్‌ని ప్రవేశపెట్టింది, దీనిని సాధారణంగా 'స్ట్రీమ్ పైప్‌లైన్' అని పిలిచే ఒకదానితో ఒకటి బంధించిన గణన దశల సమితిగా సూచించవచ్చు.





ఈ వ్యాసం మీకు జావా 8 స్ట్రీమ్‌లను పరిచయం చేస్తుంది మరియు అవి మీ ప్రాజెక్ట్‌లలో ఎలా ఉపయోగపడతాయో ప్రదర్శిస్తాయి.





స్ట్రీమ్ అంటే ఏమిటి?

స్ట్రీమ్ అనేది జావా ఇంటర్‌ఫేస్, ఇది మూలాన్ని తీసుకుంటుంది, నిర్దిష్ట డేటాను సంగ్రహించడానికి కార్యకలాపాల సమితిని నిర్వహిస్తుంది, ఆపై ఆ డేటాను ఉపయోగం కోసం అప్లికేషన్‌కు అందిస్తుంది. ముఖ్యంగా, సాధారణీకరించిన డేటా సేకరణ నుండి ప్రత్యేక డేటాను సేకరించేందుకు ఇది మిమ్మల్ని అనుమతిస్తుంది.

స్ట్రీమ్‌లు ఎలా పని చేస్తాయి

స్ట్రీమ్ పైప్‌లైన్ ఎల్లప్పుడూ మూలాధారంతో ప్రారంభమవుతుంది. మూలం రకం మీరు వ్యవహరిస్తున్న డేటా రకంపై ఆధారపడి ఉంటుంది, కానీ అత్యంత ప్రాచుర్యం పొందిన వాటిలో రెండు శ్రేణులు మరియు సేకరణలు.



సేకరణను ప్రారంభ స్ట్రీమ్‌గా మార్చడానికి, మీరు దీన్ని జోడించాలి ప్రవాహం () మూలానికి ఫంక్షన్. ఇది మూలాన్ని స్ట్రీమ్ పైప్‌లైన్‌లో ఉంచుతుంది, ఇక్కడ అనేక ఇంటర్మీడియట్ కార్యకలాపాలు (వంటివి) ఫిల్టర్ () మరియు క్రమబద్ధీకరించు () ) దానిపై పనిచేయగలదు.

అవసరమైన అన్ని ఇంటర్మీడియట్ ఆపరేషన్లు నిర్వహించిన తర్వాత, మీరు టెర్మినల్ ఆపరేషన్‌ని ప్రవేశపెట్టవచ్చు (వంటివి ప్రతి() ), ఇది మూలం నుండి గతంలో సేకరించిన డేటాను ఉత్పత్తి చేస్తుంది.





ప్రవాహాలు లేని జీవితం

జావా 8 2014 లో విడుదలైంది, కానీ అంతకు ముందు, జావా డెవలపర్లు సాధారణ డేటా సేకరణ నుండి ప్రత్యేక డేటాను సేకరించాల్సిన అవసరం ఉంది.

లైనక్స్‌లో ఫైల్‌ను ఎలా తొలగించాలి

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





సంబంధిత: జావాలో తీగలను ఉపయోగించడం గురించి మీరు తెలుసుకోవలసినది

స్ట్రీమ్స్ ఉదాహరణ లేకుండా విలువలను ఫిల్టర్ చేయడం మరియు క్రమబద్ధీకరించడం


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'C13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'C16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//declare the array list will store needed values
List requiredValues = new ArrayList();
//extracting the required values and storing them in reqquiredValues
randomValues.forEach(value -> {
if(value.startsWith('C')) {
requiredValues.add(value);
}
});
//sort the requiredValues in ascending order
requiredValues.sort((String value1, String value2) -> value1.compareTo(value2));
//print each value to the console
requiredValues.forEach((String value) -> System.out.println(value));
}
}

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

సంబంధిత: జావాలో శ్రేణులపై ఆపరేషన్‌లను ఎలా సృష్టించాలి మరియు నిర్వహించాలి

పై కోడ్ కన్సోల్‌లో కింది అవుట్‌పుట్‌ను ఉత్పత్తి చేస్తుంది:


C11
C12
C13
C14
C15
C16

ప్రవాహాలతో జీవితం

ప్రోగ్రామింగ్‌లో, సమర్థత అదే ఫలితాన్ని గణనీయంగా తక్కువ కోడ్‌తో ఉత్పత్తి చేస్తుంది. ప్రోగ్రామర్ కోసం స్ట్రీమ్ పైప్‌లైన్ సరిగ్గా ఇదే చేస్తుంది. కాబట్టి తదుపరిసారి ఎవరైనా అడిగినప్పుడు: మీ ప్రాజెక్ట్‌లో స్ట్రీమ్‌లను ఉపయోగించడం ఎందుకు ముఖ్యం? సరళంగా చెప్పాలంటే: స్ట్రీమ్‌లు సమర్థవంతమైన ప్రోగ్రామింగ్‌కు మద్దతు ఇస్తాయి.

పైన ఉన్న మా ఉదాహరణను కొనసాగిస్తూ, స్ట్రీమ్‌లను పరిచయం చేయడం మొత్తం ప్రోగ్రామ్‌ని ఎలా మారుస్తుంది.

స్ట్రీమ్ ఉదాహరణతో విలువలను ఫిల్టర్ చేయడం మరియు క్రమబద్ధీకరించడం


import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'C13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'C16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//retrieves only values that start with C, sort them, and print them to the console.
randomValues.stream().filter(value->value.startsWith('C')).sorted().forEach(System.out::println);
}
}

స్ట్రీమ్ ఇంటర్‌ఫేస్ ఎంత శక్తివంతమైనదో పై కోడ్ చూపిస్తుంది. ఇది యాదృచ్ఛిక శ్రేణి విలువల జాబితాను తీసుకుంటుంది మరియు దానిని ఉపయోగించి దాన్ని స్ట్రీమ్‌గా మారుస్తుంది ప్రవాహం () ఫంక్షన్ స్ట్రీమ్ అప్పుడు అవసరమైన విలువలను కలిగి ఉన్న శ్రేణి జాబితాకు తగ్గించబడుతుంది (ఇది ప్రారంభమయ్యే అన్ని విలువలు సి ), ఉపయోగించి ఫిల్టర్ () ఫంక్షన్

పై ఉదాహరణలో మీరు చూడగలిగినట్లుగా, ది సి విలువలు శ్రేణి జాబితాలో యాదృచ్ఛికంగా అమర్చబడి ఉంటాయి. మీరు పైప్‌లైన్‌లో ఈ సమయంలో స్ట్రీమ్‌ను ప్రింట్ చేస్తే, విలువ సి 15 ముందుగా ముద్రించబడుతుంది. అందువలన, ది క్రమబద్ధీకరించు () ఫంక్షన్ కొత్త శ్రేణిని ఆరోహణ క్రమంలో క్రమాన్ని మార్చడానికి స్ట్రీమ్ పైప్‌లైన్‌కు పరిచయం చేయబడింది.

స్ట్రీమ్ పైప్‌లైన్‌లో తుది ఫంక్షన్ a ప్రతి() ఫంక్షన్ ఇది స్ట్రీమ్ పైప్‌లైన్‌ను ఆపడానికి ఉపయోగించే టెర్మినల్ ఫంక్షన్ మరియు కన్సోల్‌లో కింది ఫలితాలను ఉత్పత్తి చేస్తుంది:


C11
C12
C13
C14
C15
C16

స్ట్రీమ్ ఇంటర్మీడియట్ ఆపరేషన్స్

స్ట్రీమ్ పైప్‌లైన్‌లో ఉపయోగించగల ఇంటర్మీడియట్ కార్యకలాపాల విస్తృత జాబితా ఉంది.

స్ట్రీమ్ పైప్‌లైన్ ఎల్లప్పుడూ ఒకే మూలం మరియు a తో మొదలవుతుంది ప్రవాహం () ఫంక్షన్, మరియు ఎల్లప్పుడూ ఒకే టెర్మినల్ ఆపరేషన్‌తో ముగుస్తుంది (ఎంచుకోవడానికి అనేక విభిన్నమైనవి ఉన్నప్పటికీ.) కానీ ఈ రెండు విభాగాల మధ్య మీరు ఉపయోగించగల ఆరు ఇంటర్మీడియట్ కార్యకలాపాల జాబితా ఉంది.

పైన మా ఉదాహరణలో, ఈ మధ్యంతర ఆపరేషన్లలో రెండు మాత్రమే ఉపయోగించబడ్డాయి --- ఫిల్టర్ () మరియు క్రమబద్ధీకరించు () . మీరు ఎంచుకున్న ఇంటర్మీడియట్ ఆపరేషన్ మీరు చేయాలనుకుంటున్న టాస్క్‌లపై ఆధారపడి ఉంటుంది.

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

లోయర్‌కేస్ వాల్యూస్ ఉదాహరణపై ఫిల్టర్ మరియు సార్టింగ్ ఆపరేషన్‌లను చేయడం


import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'c13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'c16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//retrieves only values that start with C, sort them, and print them to the console.
randomValues.stream().filter(value->value.startsWith('C')).sorted().forEach(System.out::println);
}
}

పై కోడ్ కన్సోల్‌లో కింది విలువలను ఉత్పత్తి చేస్తుంది:


C11
C12
C14
C15

పైన ఉన్న అవుట్‌పుట్‌తో ఉన్న ఏకైక సమస్య ఏమిటంటే అది అన్నింటినీ ఖచ్చితంగా సూచించదు సి మా శ్రేణి జాబితాలో విలువలు. ఈ చిన్న లోపాన్ని పరిష్కరించడానికి మంచి మార్గం స్ట్రీమ్ పైప్‌లైన్‌కు మరొక ఇంటర్మీడియట్ ఆపరేషన్‌ను పరిచయం చేయడం; ఈ ఆపరేషన్ అంటారు మ్యాప్ () ఫంక్షన్

మ్యాప్ ఫంక్షన్ ఉదాహరణను ఉపయోగించడం


import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'c13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'c16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//transforms all lower case characters to upper case,
//retrieves only values that start with C, sort them, and print them to the console.
randomValues.stream().map(String::toUpperCase).filter(value->value.startsWith('C')).sorted().forEach(System.out::println);
}
}

ది మ్యాప్ () ఫంక్షన్ ఒక వస్తువును ఒక రాష్ట్రం నుండి మరొక స్థితికి మారుస్తుంది; పైన మా ఉదాహరణలో ఇది శ్రేణి జాబితాలో ఉన్న అన్ని చిన్న అక్షరాలను పెద్ద అక్షరాలకు మారుస్తుంది.

ఉంచడం మ్యాప్ () ఫంక్షన్ ముందు ఫిల్టర్ () ఫంక్షన్ ప్రారంభమయ్యే అన్ని విలువలను తిరిగి పొందుతుంది సి శ్రేణి జాబితా నుండి.

పైన ఉన్న కోడ్ కన్సోల్‌లో కింది ఫలితాన్ని ఉత్పత్తి చేస్తుంది, అన్నింటినీ విజయవంతంగా సూచిస్తుంది సి శ్రేణి జాబితాలో విలువలు.


C11
C12
C13
C14
C15
C16

మీ అప్లికేషన్లలో మీరు ఉపయోగించగల ఇతర మూడు ఇంటర్మీడియట్ ఆపరేషన్లు:

  • పీక్ ()
  • పరిమితి ()
  • దాటవేయి ()

జావా 8 స్ట్రీమ్‌లు సమర్థవంతమైన కోడ్ సృష్టిని సులభతరం చేస్తాయి

జావా 8 స్ట్రీమ్‌లతో మీరు ఒక నిర్దిష్ట లైన్ కోడ్‌తో పెద్ద మూలం నుండి అదనపు నిర్దిష్ట, సంబంధిత డేటాను సేకరించవచ్చు. మీరు ప్రారంభాన్ని చేర్చినంత కాలం ప్రవాహం () ఫంక్షన్ మరియు టెర్మినల్ ఆపరేటర్, మీ లక్ష్యం కోసం తగిన అవుట్‌పుట్‌లను అందించే ఇంటర్మీడియట్ కార్యకలాపాల కలయికను మీరు ఉపయోగించవచ్చు.

చలనచిత్రాలను చూడటానికి ఫోన్‌ను xbox one కి ఎలా కనెక్ట్ చేయాలి

మా లోపల ఉన్న కోడ్ లైన్ గురించి మీరు ఆశ్చర్యపోతుంటే ఫిల్టర్ () ఫంక్షన్; దీనిని 'లాంబ్డా ఎక్స్‌ప్రెషన్' అని పిలుస్తారు. లాంబ్డా ఎక్స్‌ప్రెషన్స్ అనేది జావా 8 తో ప్రవేశపెట్టిన మరో ఫీచర్, మరియు ఇందులో మీకు ఉపయోగపడే అనేక నగ్గెట్‌లు ఉన్నాయి.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ జావా 8 లంబదాస్‌కి త్వరిత పరిచయం

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

తదుపరి చదవండి
సంబంధిత అంశాలు
  • ప్రోగ్రామింగ్
  • జావా
  • కోడింగ్ ట్యుటోరియల్స్
రచయిత గురుంచి కదీషా కీన్(21 కథనాలు ప్రచురించబడ్డాయి)

కదీషా కీన్ పూర్తి-స్టాక్ సాఫ్ట్‌వేర్ డెవలపర్ మరియు టెక్నికల్/టెక్నాలజీ రైటర్. ఆమె చాలా క్లిష్టమైన సాంకేతిక భావనలను సరళీకృతం చేసే ప్రత్యేక సామర్థ్యాన్ని కలిగి ఉంది; ఏదైనా సాంకేతిక అనుభవం లేని వ్యక్తి సులభంగా అర్థం చేసుకోగల పదార్థాన్ని ఉత్పత్తి చేయడం. ఆమె రాయడం, ఆసక్తికరమైన సాఫ్ట్‌వేర్‌ను అభివృద్ధి చేయడం మరియు ప్రపంచాన్ని పర్యటించడం (డాక్యుమెంటరీల ద్వారా) పట్ల మక్కువ చూపుతుంది.

కదీషా కీన్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి