ओह, जावा सरणियाँ। वे सैकड़ों शुरुआती सॉफ्टवेयर डेवलपर्स के गहन प्रेम और घृणा की वस्तु हैं। एक सरणी में तत्वों को जोड़ना जो पहले से ही आरंभीकृत था, असंभव है, उन्होंने कहा ... वास्तव में, यह संभव है, लेकिन शास्त्रीय अर्थ में नहीं ... और यह बहुत सुविधाजनक नहीं है। एक सरणी में नए तत्व जोड़ना जो पहले से ही आरंभ किया गया था, एक तरह की चाल है। हालांकि, ये ट्रिक्स इंटरव्यू में... और कभी-कभी प्रोग्रामर की नौकरी में भी काम आ सकती हैं। यह सुनिश्चित करने के लिए कि आप डेटा प्रकार का उपयोग करने का आनंद लेते हैं और यह जानते हैं कि इसे कुशलता से कैसे करना है, हमने जावा ऐरे में एक नया तत्व जोड़ने पर एक गाइड लिखा। सिद्धांत और कोड नमूनों को सावधानीपूर्वक पढ़ने के अलावा, पोस्ट में प्रदर्शित अभ्यास समस्याओं की जांच करना और उन्हें पूरा करना सुनिश्चित करें।
जावा में ऐरे क्या है
आइए याद करें कि ऐरे क्या है और इसे जावा में कैसे बनाया जाता है। यदि आपको यह याद है, तो बेझिझक अगले उपशीर्षक "Java Arrays में नए तत्व जोड़ने के 5 तरीके" पर आगे बढ़ें। ओरेकल के आधिकारिक जावा प्रलेखन का कहना है कि सरणियाँ एक ही डेटा प्रकार से संबंधित मूल्यों की एक श्रृंखला है। पूर्णांकों का एक सेट जावा में एक सरणी का एक आदर्श उदाहरण है । आपके द्वारा परिभाषित सभी मानों की अनुक्रमणिका नामक सरणी के भीतर एक विशिष्ट स्थिति होती है । सरणियों को घोषित करने और आरंभ करने के तरीके इस प्रकार हैं:
int[] myArray = new int[10];
int[] myArray1 = {1, 0, 3, 17, 5, 6, 7, 8, 9, 10}
पहले मामले में, हमने एक सरणी myArray को परिभाषित किया और जावा को 10 तत्वों की एक सरणी के लिए स्थान आवंटित करने के लिए बनाया, दूसरे myArray1 में , हमने तुरंत इसमें 10 मान दर्ज किए। किसी भी स्थिति में, तत्व 11 को केवल सरणी में नहीं धकेला जा सकता है। सरणियों के साथ संचालन करने के लिए, डेवलपर्स एक सरणी में मौजूद मानों के सूचकांकों में हेरफेर करते हैं। काय करते? आइए सरणी में जोड़ने के सबसे सामान्य तरीकों पर एक नज़र डालें।
जावा सरणियों में नए तत्वों को जोड़ने के 5 तरीके
ठीक है, यहाँ अपरिवर्तनीय को परिवर्तनशील बनाने की हमारी तरकीबें हैं।- एक ऐरे को एक सूची में बदलें
- बड़ी क्षमता वाली एक नई सरणी बनाएँ और सरणी में एक नया तत्व जोड़ें
- System.arraycopy() लागू करना
- अपाचे कॉमन्स का उपयोग करके सरणियों की प्रतिलिपि बनाना
- ArrayCopyOf() विधि को लागू करना
1. एक सूची को एक सूची में परिवर्तित करना
चूँकि हम किसी सरणी में सीधे एक नया तत्व नहीं जोड़ सकते हैं, अगली सबसे अच्छी बात यह है कि उन्हें सूचियों में परिवर्तित करें, नए तत्व जोड़ें, और मानों को फिर से सरणियों में बदलें। किसी सरणी को सूची में बदलने का पहला तरीका एक नई ArrayList बनाने के लिए asList () का उपयोग करना है। एक बार मानों की श्रेणी सफलतापूर्वक रूपांतरित हो जाने के बाद, मान सम्मिलित करने के लिए ListAdd() का उपयोग करें। एक बार जब आपको किसी सरणी को संपादित करने की आवश्यकता नहीं है, तो toArray() विधि की सहायता से मूल डेटा प्रकार में वापस कनवर्ट करें। सभी तरीकों और रूपांतरणों के साथ, यह पहली बार में भ्रमित करने वाला लग सकता है। चीजों को स्पष्ट करने के लिए asList() का उपयोग करने के उदाहरण पर एक नजर डालते हैं ।
// Code for adding Java arrays to a program
import java.lang.*;
import java.util.*;
class ArrayDemo{
//Let’s add a new element to an array
public static Integer[] addX(Integer myArray[], int x) {
int i;
//turn array into ArrayList using asList() method
List arrList = new ArrayList( Arrays.asList(myArray));
// adding a new element to the array
arrList.add(x);
// Transforming the ArrayList into an array
myArray = arrList.toArray(myArray);
return myArray;
}
public static void main(String[] args) {
int i;
//initial array
Integer myArray[] = { 0, 1, 2, 45, 7, 5, 17};
//print the initial array out
System.out.println("Initial Array: "
+ Arrays.toString(myArray));
//element to be added
int x = 28;
// call the method to add x in myArray
myArray = addX(myArray, x);
// print the updated array out
System.out.println("Array with " + x + " added: "
+ Arrays.toString(myArray));
}
}
आउटपुट है:
प्रारंभिक सरणी: [0, 1, 2, 45, 7, 5, 17] 28 जोड़े गए सरणी: [0, 1, 2, 45, 7, 5, 17, 28]
इसलिए, प्रोग्राम में हमने सफलतापूर्वक 7 मानों की एक सरणी myArray बनाई है , इसे भर दिया है और इसे प्रिंट कर लिया है। तब हमने तय किया कि दस मूल्य हमारे लिए काफी नहीं थे। ठीक है, हमने Arrays.asList विधि का उपयोग करके myArray को ArrayList arrList में परिवर्तित कर दिया । यहाँ 28 है, जोड़ा जाने वाला तत्व। हमने इसे ArrayList arrList में जोड़ा , और फिर इसे toArray() विधि का उपयोग करके एक सरणी में परिवर्तित कर दिया और नए सरणी को प्रिंट कर लिया।
2. अधिक क्षमता वाली एक नई सरणी बनाएँ
एक सरणी में अधिक तत्वों को जोड़ने के सबसे सामान्य तरीकों में से एक नया, बड़ा, खरोंच से सरणी बनाना, पुराने तत्वों को रखना और नए तत्वों को जोड़ना है। यहाँ प्रक्रिया का चरण-दर-चरण पूर्वाभ्यास है:- a+n क्षमता के साथ एक नई सरणी बनाएँ (a - मूल सरणी क्षमता, n - उन तत्वों की संख्या जिन्हें आप जोड़ना चाहते हैं)।
- पिछली डेटा श्रेणी के सभी तत्वों को नए के साथ-साथ नए मानों में जोड़ें।
- परिणामी सरणी प्रिंट करें।
// Java Program to add an element in an Array
import java.lang.*;
import java.util.*;
class ArrayDemo {
//Method to add an element x into array myArray
public static int[] addX(int myArray[], int x) {
int i;
// create a new array of a bigger size (+ one element)
int newArray[] = new int[myArray.length + 1];
// insert the elements from the old array into the new one
for (i = 0; i < myArray.length; i++)
newArray[i] = myArray[i];
newArray[myArray.length] = x;
return newArray;
}
public static void main(String[] args) {
int i;
// initial array of size 10
int arr[]
= {0, 1, 2, 45, 7, 5, 17};
// print the initial array
System.out.println("Initial Array: " + Arrays.toString(arr));
// element to be added
int x = 28;
// call the addX method to add x in arr
arr = addX(arr, x);
// print the updated array
System.out.println("Array with " + x + " added:" + Arrays.toString(arr));
}
}
आउटपुट है:
प्रारंभिक सरणी: [0, 1, 2, 45, 7, 5, 17] 28 जोड़े गए सरणी: [0, 1, 2, 45, 7, 5, 17, 28]
खैर, एक सरणी में एक नया तत्व जोड़ने का यह तरीका सबसे आसान है।
3. लागू करना System.arrayCopy()
System.arrayCopy() स्रोत सरणी के गंतव्य पर एक बड़ी सरणी आवंटित करने के लिए व्यापक रूप से उपयोग की जाने वाली विधि है। एक डेवलपर उस अनुक्रम को निर्दिष्ट कर सकता है जिसे वह विधि के कोष्ठक में एक नई सरणी में कॉपी करना चाहता है। यह देखने के लिए कि विधि कैसे काम करती है और इसे अपने लिए प्रयोग करने का प्रयास करें, एक नज़र डालें और नीचे दिए गए उदाहरण को चलाने का प्रयास करें:
import java.util.Arrays;
class ArrayDemo {
private static Integer[] addElement(Integer[] myArray, int newElement) {
//we create a new Object here, an array of bigger capacity
Integer[] array = new Integer[myArray.length + 1];
System.arraycopy(myArray, 0, array, 0, myArray.length);
array[myArray.length] = newElement;
return array;
}
public static void main(String[] args) {
Integer[] myArray = {20, 21, 3, 4, 5, 88};
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
myArray = addElement(myArray, 12);
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
}
}
आउटपुट है:
myArray एक नया तत्व जोड़ने से पहले: [20, 21, 3, 4, 5, 88] एक नया तत्व जोड़ने से पहले myArray: [20, 21, 3, 4, 5, 88, 12]
यहां हमने एक सरणी myArray बनाई है , इसे प्रिंट किया है और हमारे addElement विधि का उपयोग करके एक नया तत्व जोड़ा है , जो System.arrayCopy() पर बनाया गया है ।
4. सरणियों को कॉपी करने के लिए अपाचे कॉमन्स का उपयोग करना
आइए एक गैर-मानक तरीके का उपयोग करें। अर्थात्, तृतीय-पक्ष लाइब्रेरी Apache Commons lang. यह पुन: प्रयोज्य जावा घटकों के सभी पहलुओं पर केंद्रित अपाचे कॉमन्स परियोजना का एक हिस्सा है। परियोजना के बारे में ज्ञान अतिश्योक्तिपूर्ण नहीं होगा। अपाचे कॉमन्स लैंग में एक विधि ऐड () है जिसे विशेष रूप से सरणियों के विस्तार की अनुमति देने के लिए डिज़ाइन किया गया है, यह कोडर्स को बहुत समय और प्रयास बचाता है। यह ध्यान में रखने योग्य है कि यह अपाचे कॉमन्स ऐड () विधि System.arraycopy () विधि को कॉल करने पर आधारित है, यदि आपको एक मुश्किल परीक्षा या साक्षात्कार प्रश्न का उत्तर देना है। अपने प्रोजेक्ट में लाइब्रेरी जोड़ने के लिए Apache Commons वेबसाइट पर जाएं और लाइब्रेरी डाउनलोड करें। फिर फाइल → प्रोजेक्ट स्ट्रक्चर → लाइब्रेरी > + पर जाएं और डाउनलोड की गई जार फाइलों को चुनें।
import org.apache.commons.lang3.ArrayUtils;
import java.util.Arrays;
class ArrayDemo {
private static <T> T[] append(T[] arr, T element) {
return ArrayUtils.add(arr, element);
}
public static void main(String[] args) {
Integer[] myArray = { 0, 1, 2, 3, 4};
System.out.println("myArray: " + Arrays.toString(myArray));
myArray = append(myArray, 5);
System.out.println("new Array with the number added: " + Arrays.toString(myArray));
}
}
आउटपुट है:
myArray: [0, 1, 2, 3, 4] जोड़े गए नंबर के साथ नया ऐरे: [0, 1, 2, 3, 4, 5]
5. ArrayCopyOf() को लागू करना
ArrayCopyOf() एक सरणी में एक नया तत्व जोड़ने का एक और तरीका है। जैसे Apache Commons lang add() यह इस ऑपरेशन को करने के लिए System.arraycopy() को आंतरिक रूप से कॉल करता है। हालाँकि अधिकांश डेवलपर ArrayCopyOf() पसंद करते हैं क्योंकि यह उन्हें कोड को संक्षिप्त और पठनीय रखने की अनुमति देता है। किसी सरणी में नए तत्व जोड़ने के लिए ArrayCopyOf() का उपयोग करने का एक उदाहरण यहां दिया गया है :
import java.util.Arrays;
class ArrayDemo {
private static <X> X[] addElement(X[] myArray, X element) {
X[] array = Arrays.copyOf(myArray, myArray.length + 1);
array[myArray.length] = element;
return array;
}
public static void main(String[] args) {
Integer[] myArray = {20, 21, 3, 4, 5, 88};
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
myArray = addElement(myArray, 12);
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
}
}
आउटपुट है:
myArray एक नया तत्व जोड़ने से पहले: [20, 21, 3, 4, 5, 88] एक नया तत्व जोड़ने से पहले myArray: [20, 21, 3, 4, 5, 88, 12]
निष्कर्ष
किसी सरणी में तत्वों को जोड़ने का तरीका जानने से डेवलपर्स को पुराने कोड को उसकी कार्यक्षमता और पठनीयता का त्याग किए बिना जल्दी से अपडेट करने में मदद मिलती है ... या सिर्फ साक्षात्कार पास करने के लिए। चूंकि जावा सरणियों में तत्वों को जोड़ने के विभिन्न तरीके हैं, इसलिए बेझिझक उस विधि का चयन करें जिसके साथ आप सहज हैं।
अधिक पढ़ना: |
---|
GO TO FULL VERSION