नकाशा ही एक सुप्रसिद्ध कार्यात्मक प्रोग्रामिंग संकल्पना आहे जी जावा 8 मध्ये अंतर्भूत आहे. नकाशा खाली परिभाषित फंक्शन आहे java.util.stream.Streams: प्रत्येक घटकावरील फंक्शन वापरून प्रवाहाच्या प्रत्येक घटकाचे रूपांतर करण्यासाठी वापरलेला वर्ग. या वैशिष्ट्यामुळे तुम्ही a वापरू शकता नकाशा () मध्ये: आठवडा 8: रूपांतरित a संग्रह:, यादी, व्याख्या करणे, किंवा: नकाशा:. उदाहरणार्थ, जर तुमच्याकडे एक स्ट्रिंग सूची असेल – तुम्हाला त्या सर्वांना अपरकेसमध्ये रूपांतरित करायचे असेल तर तुम्ही ते कसे कराल? जावा 8 पर्यंत, हे करण्यासाठी कोणतेही कार्य नाही. आपल्याला लूप वापरून ड्रॉपद्वारे पुनरावृत्ती करणे आवश्यक आहे किंवा foreach नोड each प्रत्येक घटकाचे रूपांतर करा. जावा 8 मध्ये, आपल्याला एक प्रवाह मिळतो जो आपल्याला अनेक फंक्शनल प्रोग्रामिंग ऑपरेटर वापरण्याची परवानगी देतो, जसे की नकाशा:, फिल्टर कमी करा.

वापरणे: नकाशा () फंक्शन, आपण संग्रहातील कोणत्याही आयटमवर कोणतेही फंक्शन लागू करू शकता. हे कोणतेही पूर्वनिर्धारित कार्य किंवा वापरकर्ता-परिभाषित कार्य असू शकते. आपण फक्त वापरू शकत नाही लॅम्बडा अभिव्यक्ती तसेच पद्धत दुवे:.

जावा 8 मधील नकाशाचे एक उदाहरण म्हणजे पूर्णांक सूचीला प्रत्येक संख्येच्या चौरसात रूपांतरित करणे. नकाशा कार्य देखील एक मध्यवर्ती क्रिया आहे – ते रूपांतरित घटकाचा प्रवाह परत करते.

प्रवाह API देखील अशा पद्धती प्रदान करते mapToDouble (), mapToInt (), և: mapToLong () जे परत येते डबलस्ट्रीम:, IntStream: आणि लांब प्रवाह:, जे त्यासाठी विशेष प्रवाह आहेत दुप्पट, s: आणि लांब डेटा प्रकार:

तुम्ही रूपांतरण परिणाम गोळा करू शकता: संग्राहक: एक वर्ग जो परिवर्तनाचा परिणाम गोळा करण्यासाठी अनेक पद्धती प्रदान करतो यादी, व्याख्या करणे, किंवा कोणतेही संग्रह:.

जावा मधील नकाशाचे कार्य काय आहे? हे कस काम करत?

मी म्हटल्याप्रमाणे, जावा 8 स्ट्रीम एपीआय मध्ये, मॅप फंक्शन प्रत्येक घटकाचे रूपांतर करण्यासाठी वापरले जाते संग्रह: ते असो यादी, व्याख्या करणे, किंवा: नकाशा:. जर तुम्ही जावा स्ट्रीम क्लास मॅप फंक्शनची घोषणा पाहिली तर तुम्हाला ते अधिक चांगले समजेल.

मॅप फंक्शन डिक्लेरेशन कसे दिसते ते येथे आहे.

<R> Stream<R>  map​(Function<? super T,​? extends R> mapper)

हे खूप वाटतं, नाही का? बरं, जर तुम्हाला जेनेरिक्स և फंक्शनल प्रोग्रामिंगची माहिती नसेल तर ते भीतीदायक असू शकते, परंतु ते मोडू. प्रकार (पॅरामीटर) वगळता नकाशा () फंक्शन कार्य: जे आहे: कार्य: जे एक प्रकार टी पॅरामीटर घेते a एक प्रकार आर परिणाम देते.

उदाहरणार्थ, हे असू शकते: Integer.parseInt (स्ट्रिंग नंबर), जी एक रेषा घेते आणि पूर्णांक देते. यामुळेच तुम्ही लॅम्ब्डा एक्सप्रेशन वापरून कोणतीही फंक्शन पास करू शकता, ती योग्य पद्धत किंवा शॉर्टकोड असू शकते, जे एका प्रकारामध्ये दुसऱ्या प्रकारात रूपांतरित करू शकते. हे लक्षात घेतले जाऊ शकते की वितर्क प्रकार टी आहे आणि परतावा प्रकार आर आहे.

आणि जर तुम्ही नकाशा रिटर्न टाइप () फंक्शन बघितले तर तेच आहे प्रवाह , जो R चा प्रवाह आहे, तोच प्रकार जो नकाशावर पास केलेली फंक्शन () पद्धत परत करतो. आर हा देखील प्रवाहाचा प्रकार आहे ज्यासाठी आपण नकाशा फंक्शनला कॉल करत आहात.

या जावा 8 ट्युटोरियलमध्ये, आम्ही दोन उदाहरणांसाठी नकाशा फंक्शन वापरले: प्रथम, सूची बॉक्सच्या प्रत्येक घटकाला मोठ्या अक्षरात रुपांतरित करा आणि दुसरे, प्रत्येक पूर्णांक संख्या एका चौरसात वर्ग करा.

तसे, जावा 8 सह आपण काय करू शकता याबद्दल ही फक्त एक हिमखंड आहे. यात अनेक उपयुक्त वैशिष्ट्ये आहेत – एपीआय सुधारणा जसे की स्ट्रिंग्समध्ये सामील होण्याचे मार्ग, नवीन तारीख एपीआय, डीफॉल्ट पद्धती և बरेच काही.

जावा मध्ये फंक्शनल प्रोग्रामिंग वरील पूर्ण ट्यूटोरियल साठी, मी तपासून सुचवतो लॅम्बडास आणि स्ट्रीमसह जावा प्रोग्रामिंग शिका उडेमीवरील रंगा कर्णम यांचा कोर्स. जावा 8. शिकण्याच्या अभ्यासक्रमांपैकी एक. जावामध्ये प्रोग्रामिंगची मूलभूत माहिती जाणून घेण्यासाठी हा एक उत्तम ऑनलाइन कोर्स आहे, जसे की नकाशा, विमान, फिल्टर, कपात आणि बरेच काही.

Java 8 և 11 मध्ये map () फंक्शन कसे वापरावे? उदाहरण:

आता नकाशा फंक्शन वापरून ड्रॉपच्या प्रत्येक घटकाचे भांडवल करण्याचे उदाहरण पाहू. एकदा हा नकाशा प्रवाहाच्या प्रत्येक घटकावर मॅपिंग फंक्शन वापरतो, स्टोअर दुसर्या प्रवाहाकडे नेतात.

package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;

/**
 * Java 8 example to convert each element of List into upper case. You can use
 * Map function of Java 8 to transform each element of List or any collection.
 * @author Javin
 */
public class Java8MapExample {

    public static void main(String args[]) {
       List<String> cities = Arrays.asList("London", "HongKong", 
                                          "Paris", "NewYork");
       System.out.println("Original list : " + cities);
       System.out.println("list transformed using Java 8 :" 
                                   + transform(cities));
       System.out.println("list transformed using loop before Java 8 : " 
                                   + beforeJava8(cities));
       
       
       // You can even on the fly tranform Collection in Java using
       // Map function
       // let's transform a List of integers to square each element
       List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
       List<Integer> squares = numbers.stream()
                                      .map( i -> i*i)
                                      .collect(Collectors.toList());
       System.out.println("original list of numbers : " + numbers);
       System.out.println("transformed list of integers using Map in Java 8 : "
                                   + squares);

    }

    /**
     * This is how you convert all elements of list into upper case 
     * using loop before Java 8
     * @param listOfString
     * @return List with each element converted into upper case
     */
    public static List<String> beforeJava8(List<String> listOfString) {
        List<String> coll = new ArrayList<>();
        for (String str : listOfString) {
            coll.add(str.toUpperCase());
        }
        return coll;
    }

    /**
     * You can use Java 8 map function to transform each element of list
     * @param listOfString
     * @return list of elements with upper case
     */
    public static List<String> transform(List<String> listOfString) {
        return listOfString.stream() // Convert list to Stream
                .map(String::toUpperCase) // Convert each element to upper case
                .collect(toList()); // Collect results into a new list
    }

}

Output
run:
Original list : [London, HongKong, Paris, NewYork]
list transformed using Java 8 :
[LONDON, HONGKONG, PARIS, NEWYORK]
list transformed using loop before Java 8 :
 [LONDON, HONGKONG, PARIS, NEWYORK]
original list of numbers : [1, 2, 3, 4, 5, 6, 7, 8, 9]
transformed list of integers using Map in Java 8 : 
[1, 4, 9, 16, 25, 36, 49, 64, 81]
BUILD SUCCESSFUL (total time: 0 seconds)

जावामध्ये नकाशा कार्य कसे कार्य करते? कोड स्पष्टीकरण:

या कार्यक्रमात, आम्ही नकाशा फंक्शन वापरून जावा 8 मध्ये सूची कशी रूपांतरित करायची ते शिकलो, Java लॅम्बडा և पद्धतीच्या संदर्भाशिवाय, जावा 8 च्या आधी ते कसे केले गेले. पहिल्या उदाहरणात, आमच्याकडे तारांची यादी आहे ज्यात लोअर केसमध्ये प्रसिद्ध शहरांची नावे आहेत.

मग आम्ही ती यादी दुसऱ्या यादीत बदलली जिथे नावे मोठ्या अक्षरात आहेत. हे अर्ज करून साध्य केले जाते नकाशा () प्रत्येक घटकावर कार्य करते. नकाशा पद्धत स्वीकारली गेली कॅपिटल लेटर () लोअरकेस अक्षराचे मूल्य मोठ्या अक्षरात रूपांतरित करण्याची पद्धत.

पुढील उदाहरणामध्ये, आमच्याकडे 1 ते 9 पर्यंतच्या संख्यांची यादी होती, आम्ही ती दुसऱ्या यादीत रूपांतरित केली जिथे प्रत्येक संख्येपासून संख्या चौरस आहे. हे हस्तांतरित केलेल्या प्रत्येक संख्येचे वर्ग मोजून नकाशा कार्याचा पुनर्वापर करून हे साध्य केले जाते.

आपण पाहू शकता की नकाशा फंक्शन आवश्यक रूपांतरण करण्यासाठी कोणताही कोड किंवा फंक्शन पास करू शकतो. ही एक अतिशय शक्तिशाली फंक्शनल प्रोग्रामिंग संकल्पना आहे, – प्रत्येक जावा प्रोग्रामरने ते शिकले पाहिजे कारण आपण ते आपल्या दैनंदिन कामात बर्‍याचदा वापरता.

जरी जावा खरोखर वेगाने पुढे जात आहे, आम्ही आधीच जावा 11 मध्ये आहोत, तथापि, अनेक प्रोग्रामरना जावा 8, विशेषतः कार्यात्मक प्रोग्रामिंग पैलू शिकणे आवश्यक आहे.

जर तुम्हाला वाटत असेल की तुमची जावा 8 कौशल्ये बरोबरीची नाहीत किंवा तुम्हाला स्वतःमध्ये सुधारणा करायची आहे, तर मी सुचवितो की तुम्ही या सूचीमध्ये दिलेल्या सर्वसमावेशक जावा कोर्समध्ये सामील व्हा सर्वोत्तम मूलभूत जावा अभ्यासक्रम. हे आपल्याला माहित असणे आवश्यक असलेल्या सर्व गोष्टींचा समावेश करते – अलीकडेच जावा 11 साठी अद्यतनित.

एवढे मॅप फंक्शन वापरून जावा 8 मधील प्रत्येक 8 घटकांचे रूपांतर कसे करावे. हे अत्यंत उपयुक्त आहे: जेव्हा आपण ते वापरण्यास प्रारंभ करता, तेव्हा आपण कधीही मागे वळून पाहणार नाही. मला जावा 8 खरोखर मनोरंजक वाटले. आपण खरोखर प्रयत्न करू इच्छिता! मला लंबडा अभिव्यक्ती և प्रवाह և समस्येचे समाधान लूपशिवाय आवडते.


जर तुम्हाला हा लेख आवडला असेल – अधिक जावा 8 ट्यूटोरियलसाठी भुकेले असतील तर हे ट्यूटोरियल पहा

  • जावा 8 मध्ये लॅम्डा अभिव्यक्ती वापरण्याचे 10 मार्ग (येथे वाचा:)
  • मोफत जावा 8 पुस्तिका և पुस्तके (पुस्तक वाचा)
  • जावा 8 शिकण्यासाठी शीर्ष 10 शिकवण्या (पुढे वाचा)
  • निनावी वर्गाच्या जागी लॅम्ब्डा अभिव्यक्ती कशी वापरावी (मॅन्युअल वाचा)
  • जावा 8 मध्ये डीफॉल्ट पद्धत कशी वापरावी. (उदाहरण पहा)
  • जावा 8 तुलना उदाहरण (इकडे बघा)
  • जावा 8 मधील नकाशामध्ये सूची कशी बदलावी (उपाय)
  • जावा 8 मध्ये स्ट्रिंगशी कसे कनेक्ट करावे (उदाहरणार्थ)
  • जावा 8 मधील अमूर्त वर्ग և इंटरफेस between मधील फरक. (उत्तर)
  • अनुभवी जावा प्रोग्रामरसाठी 10 मोफत अभ्यासक्रम (अभ्यासक्रम)
  • जावा 8 (उदाहरण) मध्ये पीक () पद्धत कशी वापरावी
  • जावा 8 मध्ये मूल्यानुसार मेयोनेझची क्रमवारी कशी लावायची? (उदाहरण)
  • जावा 8 मध्ये LocalDateTime वापरून तारखेचे स्वरूपन / विश्लेषण कसे करावे? (शैक्षणिक:)
  • जावा 8 և 9 शिकण्यासाठी 5 विनामूल्य अभ्यासक्रम (अभ्यासक्रम)

हा लेख आतापर्यंत वाचल्याबद्दल धन्यवाद. जर तुम्हाला हे ट्यूटोरियल आवडत असेल तर ते तुमच्या मित्र आणि सहकाऱ्यांसह शेअर करा. आपल्याकडे काही प्रश्न किंवा टिप्पण्या असल्यास, कृपया एक टीप सोडा.

पुनश्च: जर तुम्हाला जावा 8 च्या नवीन वैशिष्ट्यांबद्दल अधिक जाणून घ्यायचे असेल तर ते तपासा मोफत जावा 8 ट्यूटोरियल अभ्यासक्रम. हे जावा 8 ची सर्व महत्वाची वैशिष्ट्ये स्पष्ट करते, जसे की लॅम्बडा एक्सप्रेशन्स, फीड्स, फंक्शनल इंटरफेस, पर्यायी नवीन डेट एपीआय տարբեր इतर विविध बदल.