पी> <पी> लाभों की लंबी सूची के कारण, ArrayLists के पास कई प्रकार के मामलों में अनुप्रयोग हैं। हालाँकि, एक महत्वपूर्ण ऑपरेशन जो ArrayLists के साथ अंतर्निहित नहीं है, वह है मुद्रण। ArrayLists मानक, आदिम डेटा प्रकारों (जैसे पूर्णांक और स्ट्रिंग्स), या अधिक उन्नत डेटा प्रकारों, जैसे कस्टम कक्षाओं से बना हो सकता है। इनमें से प्रत्येक मामले में, ArrayList को प्रिंट करने के लिए अलग-अलग चरणों की आवश्यकता होती है।
पी> <पी> इस लेख में, हम जावा में ArrayList को प्रिंट करने के शीर्ष तीन तरीकों पर एक नज़र डालेंगे, जिसमें उन दो प्रकार की ArrayLists को शामिल किया जाएगा जिनकी हमने ऊपर चर्चा की थी। बिना किसी देरी के, आइए शुरू करें!
Java ArrayList प्रिंट करें:तीन तरीके
<पी> जैसा कि ऊपर उल्लेख किया गया है, ArrayLists दो प्रकार के होते हैं:एक जिसमें एक आदिम, सरल डेटा प्रकार (जैसे पूर्णांक और फ़्लोट्स) वाली वस्तुएं होती हैं, और दूसरी जिसमें ऐसी वस्तुएं होती हैं जिन्हें कस्टम कक्षाओं के माध्यम से तत्काल किया जाता है। इन दो प्रकार की ArrayLists को प्रिंट करने के कई तरीके हैं।पी> <पी> Java में ArrayList को प्रिंट करने के ये शीर्ष तीन तरीके हैं:
- फॉर लूप का उपयोग करना
- प्रिंटएलएन कमांड का उपयोग करना
- toString() का उपयोग करना कार्यान्वयन
विधि 1:फॉर लूप का उपयोग करना
<पी> फॉर लूप किसी सूची या सरणी में पुनरावृति करने के सबसे सरल तरीकों में से एक है। यह विधि सरल सरणियों और ArrayLists के साथ समान रूप से अच्छी तरह से काम करती है, क्योंकि सभी आइटमों को एक-एक करके दोहराने से आप उनमें से प्रत्येक को तदनुसार संभाल सकते हैं।पी> <पी> यह विधि आपको प्रत्येक तत्व के लिए विशिष्ट कार्यान्वयन को परिभाषित करने में मदद करती है। निम्नलिखित लूप का सिंटैक्स है:
पी>
for (int i=0; i<arr.size(); i++) {
// Assuming arr is an ArrayList object
int current = arr.get(i);
// Do something with the current element here
} <पी> आइए अब कुछ सामान्य तरीकों पर नजर डालें जिनमें फॉर लूप का उपयोग वस्तुओं की एक श्रृंखला के माध्यम से जाने के लिए किया जा सकता है: लूप उदाहरणों के लिए
<पी> आप ArrayList के सभी तत्वों को आसानी से प्रिंट करने के लिए लूप का उपयोग कर सकते हैं:पी>
ArrayList<Integer> arr = new ArrayList<>();
arr.add(3);
arr.add(4);
arr.add(5);
arr.add(6);
for (int i=0; i<arr.size(); i++) {
int curr = arr.get(i);
System.out.println(curr);
} <पी> इसे एक स्तर तक ले जाने के लिए, आप किसी भी स्थिति के आधार पर प्रत्येक तत्व के लिए विशिष्ट मामलों को परिभाषित कर सकते हैं:पी>
ArrayList arr = new ArrayList<>();
arr.add(3);
arr.add(5l);
arr.add("Hello World!");
for (int i=0; i<arr.size(); i++) {
if (arr.get(i) instanceof Integer)
System.out.println(arr.get(i) + " is a number");
else if (arr.get(i) instanceof String)
System.out.println(arr.get(i) + " is a string");
else if (arr.get(i) instanceof Long)
System.out.println(arr.get(i) + " is a long");
} इस विधि का उपयोग कब करें
<पी> फॉर लूप उन स्थितियों के लिए सबसे उपयुक्त है जब आपके पास तत्वों का अपेक्षाकृत छोटा सेट होता है और उनके प्रकार बहुत भिन्न नहीं होते हैं। यदि आपके पास 20 आइटमों की एक सूची है जो या तो पूर्णांक (int) या स्ट्रिंग हैं, तो लूप जाने का रास्ता है। यदि आपके पास 100 से अधिक आइटमों की सूची है जो स्ट्रिंग, इंट, बूलियन, या कुछ और हो सकते हैं, तो लूप का उपयोग करना बहुत बोझिल होगा।विधि 2:println कमांड का उपयोग करना
<पी>println आदिम डेटा प्रकारों का उपयोग करके बनाई गई ArrayLists के मामले में कमांड का सीधे उपयोग किया जा सकता है। जावा में आदिम डेटा प्रकारों में स्ट्रिंग, पूर्णांक, फ्लोट, लॉन्ग, डबल और बूलियन शामिल हैं। यदि कोई सूची ऐसे डेटा से बनी है जो इन प्रकारों से मेल नहीं खाती है, तो इसे इस पद्धति का उपयोग करके मुद्रित नहीं किया जा सकता है। पी> <पी> इस विधि का सिंटैक्स सरल है:
System.out.println(arr); // Assuming arr is an ArrayList object<पी> इस पद्धति के काम करने का कारण यह है कि सभी आदिम डेटा प्रकारों को सीधे मानक आउटपुट डिवाइस पर मुद्रित किया जा सकता है। उन्हें मुद्रण योग्य प्रारूप में पार्स करने की आवश्यकता नहीं है। अन्य डेटा, जैसे कि कस्टम क्लास के उदाहरण में संग्रहीत, को सीधे println कमांड द्वारा पार्स नहीं किया जा सकता है, इसलिए यह विधि इस मामले में काम नहीं करेगी।
println उदाहरण
<पी> यदि आप एक साधारण पूर्णांक ArrayList मुद्रित करने का प्रयास कर रहे हैं, तो यहां बताया गया है कि आप यह कैसे करेंगे:ArrayList<Integer> arr = new ArrayList<>(); arr.add(5); arr.add(4); arr.add(6); System.out.println(arr); # => [5, 4, 6]<पी> यदि आप एक विषम ArrayList मुद्रित करने का प्रयास कर रहे हैं, तो वह भी काम करेगा:
पी>
ArrayList<> arr = new ArrayList<>();
arr.add(7);
arr.add("Foo");
arr.add(12l);
System.out.println(arr);
# => [7, Foo, 12] इस विधि का उपयोग कब करें
<पी> यह विधि उन स्थितियों के लिए सबसे उपयुक्त है जब आपके पास वस्तुओं की एक छोटी, सरल सूची है और आप इसे डिबगिंग उद्देश्यों के लिए प्रिंट करना चाहते हैं। ध्यान दें कि यह विधि पिछली विधि जितनी लचीली नहीं है, और आप आउटपुट डिवाइस पर मुद्रित होने वाली सामग्री को प्रारूपित नहीं कर सकते हैं।पी> <पी> इसके अतिरिक्त, यदि सूची में कोई गैर-आदिम डेटा है, तो उसका मूल्य डिवाइस पर मुद्रित नहीं होगा। इसके बजाय, मेमोरी में इसके स्थान के लिए एक संकेतक मुद्रित किया जाएगा।
पी>
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
}
ArrayList<> arr = new ArrayList<>();
arr.add(4);
arr.add(new Foo(40));
System.out.println(arr);
# => [4, 34n2dsf@Foo]; विधि 3:toString() विधि को कार्यान्वित करना
<पी> इस विधि में पिछली विधि की कमियाँ नहीं हैं। गैर-आदिम वस्तुओं को सीधे आउटपुट पर मुद्रित नहीं किए जाने का कारण यह है कि कंपाइलर यह नहीं जानता कि उन्हें कैसे प्रिंट किया जाए। toString() विधि आपको कंपाइलर को यह बताने की अनुमति देती है कि किसी क्लास के ऑब्जेक्ट को कमांड लाइन पर कैसे प्रिंट किया जाए।पी> <पी> आइए अंतिम उदाहरण से क्लास फू लें:
पी>
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
} <पी> इसे प्रिंट-अनुकूल बनाने के लिए, आपको toString() को ओवरराइड और परिभाषित करने की आवश्यकता है वर्ग परिभाषा में विधि:पी>
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
public String toString() {
return "Bar: " + String.valueOf(bar);
}
} <पी> अब यदि आप Foo: का एक उदाहरण बनाने का प्रयास करते हैं <पी> और इसे प्रिंट करें: <पी> आपको वह आउटपुट मिलेगा जो आपने पहले परिभाषित किया था:पी> <पी> सभी प्रकार की ArrayLists को आसानी से और तेज़ी से प्रिंट करने के लिए इस छोटे से सुधार को println विधि के साथ जोड़ा जा सकता है।
toString() उदाहरण
<पी> आइए विधि 2 से अंतिम उदाहरण लें और इसे प्रिंट-अनुकूल बनाएं:पी>
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
}
ArrayList<> arr = new ArrayList<>();
arr.add(4);
arr.add(new Foo(40));
System.out.println(arr);
# => [4, Foo@2a139a55]; <पी> एकमात्र परिवर्तन जो आपको यहां करने की आवश्यकता है वह है toString() को जोड़ना फू वर्ग में परिभाषा:पी> <पी>
<पी> "कैरियर कर्म ने मेरे जीवन में तब प्रवेश किया जब मुझे इसकी सबसे अधिक आवश्यकता थी और बूटकैंप ने तुरंत मेरी मदद की। स्नातक होने के दो महीने बाद, मुझे अपना सपनों का काम मिला जो जीवन में मेरे मूल्यों और लक्ष्यों के अनुरूप था!" <पी> वीनस, रॉकबॉट में सॉफ्टवेयर इंजीनियर <पी> अपना बूटकैंप मैच ढूंढें class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
public String toString(){
return "Value: " + String.valueOf(bar);
}
}
Now, the println statement will give the desired output:
// # => [4, Value: 40] इस विधि का उपयोग कब करें
<पी> यह विधि उन स्थितियों के लिए उपयुक्त है जहां आपको विषम ArrayLists, या कस्टम क्लास से बनी एक सजातीय ArrayList को प्रिंट करने की आवश्यकता होती है। कक्षा में एक एकल विधि परिभाषा आपको लूप का उपयोग करने में होने वाली परेशानी से बचाती है।पी> <पी> हालाँकि, सरल स्थितियों में यह विधि अतिश्योक्तिपूर्ण लग सकती है। यदि आपके पास तत्वों की एक छोटी सूची है, तो आप तर्क में आसानी और सरलता के लिए लूप विधि के साथ जाने पर विचार कर सकते हैं।
निष्कर्ष
<पी> Java ArrayList को प्रिंट करना कोई सीधा काम नहीं है। ArrayList की सामग्री जितनी अधिक गतिशील होगी, सूची को मानक आउटपुट पर प्रिंट करना उतना ही कठिन होगा।println कमांड अधिकांश मामलों को कवर कर सकता है, लेकिन आपको toString() की भी आवश्यकता हो सकती है कार्य पूरा करने के लिए ओवरराइड करें। पी> <पी> इस लेख में, हमने ArrayList को प्रिंट करने के तीन तरीकों को कवर किया है। हमने उनके वाक्य-विन्यास, उदाहरणों और उन स्थितियों को देखा जिनके लिए वे सबसे उपयुक्त हैं। अधिक उन्नत जावा संसाधनों के लिए, जावा सीखने के बारे में हमारी मार्गदर्शिका देखें।