remove delete an element from an array java
जावा में किसी ऐरे से किसी तत्व को हटाने या हटाने के लिए विभिन्न तरीके जानें जैसे कि किसी अन्य ऐरे का उपयोग करना, जावा 8 स्ट्रीम का उपयोग करना, एरीलिस्ट का उपयोग करना:
जावा सरणियाँ किसी तत्व को हटाने के लिए प्रत्यक्ष हटाने की विधि प्रदान नहीं करती हैं। वास्तव में, हम पहले ही चर्चा कर चुके हैं कि जावा में सरणियाँ स्थिर हैं, इसलिए सरणियों का आकार बदल जाने पर वे बदल नहीं सकते हैं। इस प्रकार हम एक तत्व को हटा नहीं सकते हैं और सरणी आकार को कम कर सकते हैं।
इसलिए अगर हम किसी तत्व को सरणी से हटाना या हटाना चाहते हैं, तो हमें विभिन्न तरीकों को नियोजित करने की आवश्यकता है जो आमतौर पर वर्कअराउंड हैं।
=> शुरुआती के लिए पूर्ण जावा प्रशिक्षण ट्यूटोरियल श्रृंखला देखें
आप क्या सीखेंगे:
जावा में एक ऐरे से एक तत्व निकालें / हटाएं
इस ट्यूटोरियल में, हम एरे से एलीमेंट को हटाने के लिए विभिन्न तरीकों पर चर्चा करेंगे।
उसमे समाविष्ट हैं:
- एक और ऐरे का उपयोग करना
- जावा 8 स्ट्रीम का उपयोग करना
- ArrayList का उपयोग करना
- System.arraycopy () का उपयोग करना
एक और सरणी का उपयोग करना
यह एक सरणी तत्व को हटाने का पारंपरिक और कुछ हद तक अक्षम तरीका है। यहां हम मूल सरणी से 1 से कम आकार के साथ एक नई सरणी को परिभाषित करते हैं। फिर हम मूल सरणी से नए सरणी में तत्वों को कॉपी करते हैं। लेकिन इस प्रतिलिपि को करते समय, हम तत्व को निर्दिष्ट सूचकांक पर छोड़ देते हैं।
इस तरह हम तत्व को छोड़कर सभी तत्वों को नए सरणी में हटाए जाने की नकल करते हैं जो यह दर्शाता है कि तत्व हटा दिया गया है।
हम नीचे दिखाए गए अनुसार इस ऑपरेशन का चित्रांकन कर सकते हैं।
जावा प्रोग्राम में इस विधि को लागू करते हैं।
import java.util.Arrays; class Main { public static void main(String[] args) { // define original array int[] tensArray = { 10,20,30,40,50,60}; // Print the original array System.out.println('Original Array: ' + Arrays.toString(tensArray)); // the index at which the element in the array is to be removed int rm_index = 2; // display index System.out.println('Element to be removed at index: ' + rm_index); // if array is empty or index is out of bounds, removal is not possible if (tensArray == null || rm_index<0 || rm_index>= tensArray.length) { System.out.println('No removal operation can be performed!!'); } // Create a proxy array of size one less than original array int[] proxyArray = new int[tensArray.length - 1]; // copy all the elements in the original to proxy array except the one at index for (int i = 0, k = 0; i आउटपुट:
जावा 8 स्ट्रीम का उपयोग करना
धारा 8 संस्करण के बाद से जावा में एक नया अतिरिक्त धाराएँ हैं। Java8 स्ट्रीम का उपयोग करके, हम एरे से एक तत्व को हटा सकते हैं। ऐसा करने के लिए, पहले, सरणी को एक धारा में परिवर्तित किया जाता है। फिर निर्दिष्ट इंडेक्स पर तत्व धाराओं के फिल्टर विधि का उपयोग करके हटा दिया जाता है।
एक बार जब तत्व हटा दिया जाता है, तो ’मैप’ और ’आयर्र ’विधियों का उपयोग करके, धारा को वापस सरणी में बदल दिया जाता है।
स्ट्रीम का उपयोग करके किसी ऐरे से तत्व को हटाने का कार्यान्वयन नीचे दिखाया गया है।
import java.util.Arrays; import java.util.stream.IntStream; class Main { // Function to remove the element public static int[] removeArrayElement(int[] oddArray, int index) { //array is empty or index is beyond array bounds if (oddArray == null || index <0 || index>= oddArray.length) { return oddArray; } // delete the element at specified index and return the array return IntStream.range(0, oddArray.length) .filter(i -> i != index) .map(i ->oddArray[i]).toArray(); } public static void main(String[] args) { int[] oddArray = { 1, 3,5,7,9,11}; // define array of odd numbers System.out.println('Original Array: ' + Arrays.toString(oddArray)); // Print the resultant array int index = 2; // index at which element is to be removed System.out.println('Element to be removed at index: ' + index); // display index // function call removeArrayElement oddArray = removeArrayElement(oddArray, index); // Print the resultant array System.out.println('Array after deleting element: ' + Arrays.toString(oddArray)); } }
आउटपुट:
डेटा मॉडलिंग साक्षात्कार सवाल और जवाब
ArrayList का उपयोग करना
हम इस ऑपरेशन को करने के लिए एक ArrayList का उपयोग कर सकते हैं। किसी तत्व को किसी सरणी से निकालने के लिए, हम पहले सरणी को एक ArrayList में परिवर्तित करते हैं और फिर किसी विशेष इंडेक्स पर तत्व को निकालने के लिए ArrayList की ’remove’ विधि का उपयोग करते हैं।
एक बार हटा देने के बाद, हम ArrayList को सरणी में वापस बदल देते हैं।
निम्नलिखित कार्यान्वयन ArrayList का उपयोग करके एक सरणी से तत्व को हटाता है।
import java.util.*; import java.util.stream.*; class Main { public static int[] remove_Element(int[] myArray, int index) { if (myArray == null || index <0 || index>= myArray.length) { System.out.println('non-existing index'); return myArray; } //array to arrayList List arrayList = IntStream.of(myArray) .boxed().collect(Collectors.toList()); // Remove the specified element arrayList.remove(index); // return the resultant array returnarrayList.stream().mapToInt(Integer::intValue).toArray(); } public static void main(String[] args) { int[] myArray = { 11,22,33,44,55,66,77,88,99,111 }; System.out.println('Original Array: ' + Arrays.toString(myArray)); int index = 10; System.out.println('Index at which element is to be deleted: ' + index); myArray = remove_Element(myArray, index); System.out.println('Resultant Array: ' + Arrays.toString(myArray) + '
'); index = 2; System.out.println('Index at which element is to be deleted: ' + index); myArray = remove_Element(myArray, index); System.out.println('Resultant Array: ' + Arrays.toString(myArray)); } }
आउटपुट:
उपरोक्त कार्यक्रम दो स्थितियों के लिए आउटपुट का उत्पादन करता है। सबसे पहले, एक गैर-मौजूदा सूचकांक (10) पारित किया जाता है यानी वर्तमान सरणी आकार से परे। कार्यक्रम एक उपयुक्त संदेश प्रदर्शित करता है और किसी भी तत्व को नष्ट नहीं करता है।
दूसरे मामले में, एक इंडेक्स = 2 पारित किया जाता है। इस बार स्थिति 2 पर मौजूद तत्व को हटा दिया गया है और परिणामी सरणी को पारित कर दिया गया है।
System.arraycopy () का उपयोग करना
यह विधि पहली विधि के समान है सिवाय इसके कि हम मूल सरणी के तत्वों को नए सरणी में कॉपी करने के लिए opy arrayCopy ’विधि का उपयोग करते हैं।
सबसे पहले, हम मूल सरणी के तत्वों को 0 से सूचकांक में नए सरणी में कॉपी करते हैं। अगला, हम इंडेक्स + 1 से तत्वों को नए सरणी में लंबाई तक कॉपी करते हैं। इस प्रकार, नकल करते समय, हम निर्दिष्ट सूचकांक पर तत्व को छोड़ देते हैं और एक नया सरणी उत्पन्न करते हैं।
यह नया सरणी परिणामी सरणी को इंगित करता है जो निर्दिष्ट सूचकांक पर एक तत्व को हटाने के बाद प्राप्त होता है।
import java.util.Arrays; class Main { public static void main(String[] args) { // define the array of integers int[] intArray = { 10,20,30,40,50 }; // display the original array System.out.println('Original Array: ' + Arrays.toString(intArray)); // index at which the element is to be deleted int index = 2; // the index System.out.println('Element to be deleted at index: ' + index); // check if the array is empty or index is out of bounds if (intArray == null || index <0 || index>= intArray.length) { System.out.println('No removal operation can be performed!!'); } // create an array to hold elements after deletion int[] copyArray = new int[intArray.length - 1]; // copy elements from original array from beginning till index into copyArray System.arraycopy(intArray, 0, copyArray, 0, index); // copy elements from original array from index+1 till end into copyArray System.arraycopy(intArray, index + 1, copyArray, index, intArray.length - index - 1); // display the copied array after deletion System.out.println('Array after deleting an element: ' + Arrays.toString(copyArray)); } }
आउटपुट:
बार बार पूछे जाने वाले प्रश्न
Q # 1) एक ऐरे से एक तत्व को कैसे निकालना है?
उत्तर: जावा किसी तत्व को सरणी से निकालने के लिए एक प्रत्यक्ष विधि प्रदान नहीं करता है। लेकिन एक इंडेक्स दिया गया जिस पर तत्व को हटाना है, हम ArrayList का उपयोग निर्दिष्ट इंडेक्स पर तत्व को हटाने के लिए कर सकते हैं।
इसके लिए, पहले, हम सरणी को ArrayList में परिवर्तित करते हैं और हटाने की विधि का उपयोग करके हम तत्व को हटाते हैं। एक बार जब यह हो जाता है, तो हम सरणी को वापस सरणी में बदल देते हैं। कई अन्य वर्कअराउंड भी हैं जिन्हें हम इस उद्देश्य के लिए नियोजित कर सकते हैं।
Q # 2) ArrayList क्या हटाता है?
उत्तर: ArrayList रिमूव विधि ArrayList में दिए गए इंडेक्स में उस तत्व को हटाती है जो एक तर्क के रूप में प्रदान किया जाता है।
जावा और सी ++ के बीच अंतर
Q # 3) आप जावा में एक Array से डुप्लिकेट कैसे निकालते हैं?
उत्तर: एक सरणी से डुप्लिकेट तत्वों को एक अस्थायी सरणी का उपयोग करके हटाया जा सकता है जो तत्वों को एक-एक करके गिना जाएगा और केवल अद्वितीय तत्वों को अस्थायी सरणी में डाल देगा। डुप्लिकेट को निकालने के लिए एक सरणी को सॉर्ट करना होगा।
Q # 4) क्या फ़िल्टर एक नई सरणी लौटाता है?
उत्तर: हाँ। मूल सरणी को प्रभावित किए बिना नए सरणी को फ़िल्टर करता है।
Q # 5) आर कैसे करता है जावा में काम एमोव?
उत्तर: जावा में ArrayList की हटाने की विधि निर्दिष्ट सूचकांक पर तत्व को हटा देती है। लिंक की गई सूची में और साथ ही हटाने की विधि दिए गए स्थान पर नोड को हटा देती है।
निष्कर्ष
इस ट्यूटोरियल में, हमने विभिन्न तरीकों या वर्कअराउंड्स का उपयोग करके देखा है, जिसका उपयोग करके हम किसी दिए गए इंडेक्स में एरे से तत्व को हटा सकते हैं।
अपने बाद के विषयों में, हम जावा में सरणियों पर किए गए कुछ और कार्यों पर चर्चा करेंगे।
=> यहां गहन जावा प्रशिक्षण गाइड देखें
अनुशंसित पाठ
- जावा सरणी कोड कोड के साथ लंबाई ट्यूटोरियल
- जावा ऐरे - जावा में ऐरे के तत्वों को कैसे प्रिंट करें?
- जावा में एक ऐरे को कैसे सॉर्ट करें - उदाहरणों के साथ ट्यूटोरियल
- जावा ऐरे - घोषणा, जावा में एक ऐरे को बनाएँ और आरम्भ करें
- जावा जेनेरिक एरे - जावा में जेनेरिक एरे को कैसे अनुकरण करें?
- जावा में एक सरणी उल्टा - उदाहरण के साथ 3 तरीके
- उदाहरणों के साथ जावा परावर्तन ट्यूटोरियल
- कैसे जावा में एक ऐरे पास / वापसी करें