मैं जावा में एरेज़ कैसे भर सकता हूँ?


84

मुझे पता है कि इसे सामान्य रूप से कैसे किया जाता है, लेकिन मैं कसम खा सकता हूं कि आप इसे [0] = {0,0,0,0} की तरह भर सकते हैं; आप इसे इस तरह से कैसे करते हैं? मैंने Google की कोशिश की, लेकिन मुझे कुछ भी मददगार नहीं मिला।


1
असली सवाल जो आपको पूछना चाहिए कि यह काम कैसे किया जाता है: एक [0] = someFunction (4, 0.); उस कारण से, चयनित "सही" उत्तर उपयोगी नहीं है।
होल्डऑफहंगर

जवाबों:


63

आप इसे घोषणा के भाग के रूप में भी कर सकते हैं:

int[] a = new int[] {0, 0, 0, 0};

11
int [] a = नया int [4] वही काम पूरा करेगा, क्योंकि 0 डिफ़ॉल्ट मान है।
Zach Scrivena

5
या int [] a = {0, 0, 0, 0}; । आपको केवल नए int की जरूरत है [] अगर निरंतर घोषणा में तुरंत उपयोग नहीं किया जाता है।
स्टारबेल

4
यह उपयोगी नहीं है जब आपके पास एक बड़ा सरणी हो। @ cdmckay का जवाब बेहतर है।
फेलिप लेओ

सदियों पुराने प्रोग्रामिंग नियम को न भूलें: "यदि आप कोड को कॉपी / पेस्ट करते हुए पाते हैं, तो आप कुछ गलत कर रहे हैं।" शून्य की संख्या, या जो भी डिफ़ॉल्ट मान है, बस यहां कॉपी और पेस्ट किया जा रहा है।
होल्डऑफहंगर

264

Arrays.fill विधियों की जाँच करें ।

int[] array = new int[4];
Arrays.fill(array, 0);

21
+1 क्योंकि मुझे Arrays.fill () विधि के बारे में नहीं पता था। मैंने हमेशा इसे लूप के लिए किया। : डी
स्पोइक

8
@GrantGalitz मैं वास्तव में उस बारे में आश्वस्त नहीं हूं, क्या आपके पास एक लेख या एसएमएस का लिंक है? क्योंकि Systemकक्षाओं के विपरीत , java.util.Arraysजावा द्वारा कार्यान्वित एक वर्ग है, और स्रोत के माध्यम से देखने से पता चलता है कि यह एक सामान्य लूप से अलग नहीं है
पचेरियर

7
चींटियों की सरणियों को 0 से आरंभ किया जाता है, इसलिए उपरोक्त उदाहरण में दूसरी पंक्ति आवश्यक नहीं है।
पैट्रिक ब्रिंच-लैंग्लोइस

6
@ पैट्रिकब्रीनिच-लैंग्लोइस: यह अभी भी सार्थक हो सकता है ताकि आपके इरादे को इंगित किया जा सके कि यह शून्य है।
cdmckay

16

Arrays.fill()। विधि विभिन्न डेटा प्रकारों के लिए अतिभारित होती है, और यहां तक ​​कि एक भिन्नता होती है जो केवल निर्दिष्ट सीमाओं को भरती है।


16

जावा -8 में आप IntStreamसंख्याओं की एक धारा बनाने के लिए उपयोग कर सकते हैं जिसे आप दोहराना चाहते हैं, और फिर इसे सरणी में बदल सकते हैं। यह दृष्टिकोण एक इनिशियलाइज़र में उपयोग के लिए उपयुक्त अभिव्यक्ति का उत्पादन करता है:

int[] data = IntStream.generate(() -> value).limit(size).toArray();

ऊपर, sizeऔर valueऐसे भाव हैं जो उन वस्तुओं की संख्या का उत्पादन करते हैं जिन्हें आप बार-बार दोहराना चाहते हैं और मूल्य दोहराया जा रहा है।

डेमो।


10
Arrays.fill(arrayName,value);

जावा में

int arrnum[] ={5,6,9,2,10};
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}
Arrays.fill(arrnum,0);
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}

उत्पादन

5 6 9 2 10
0 0 0 0 0

5

new Object {}सिंटैक्स का उपयोग करके एक सरणी को आरंभीकृत किया जा सकता है ।

उदाहरण के लिए, किसी सरणी को Stringया तो घोषित किया जा सकता है:

String[] s = new String[] {"One", "Two", "Three"};
String[] s2 = {"One", "Two", "Three"};

प्रिमिटिव्स को भी इसी तरह से इनिशियलाइज़ किया जा सकता है:

int[] i = new int[] {1, 2, 3};
int[] i2 = {1, 2, 3};

या कुछ की एक सरणी Object:

Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)};

जावा में सरणियों के बारे में सभी विवरण अध्याय 10: एर्रेज़ इन द जावा लैंग्वेज स्पेसिफिकेशन्स, थर्ड एडिशन में लिखे गए हैं ।


2

जावा में ऐरे तत्वों को बनाते समय डिफ़ॉल्ट मानों के लिए आरंभिक किया जाता है। संख्याओं के लिए इसका मतलब है कि वे 0 से आरंभीकृत हैं, संदर्भों के लिए वे अशक्त हैं और बूलियन के लिए वे झूठे हैं।

सरणी को किसी और चीज़ से भरने के लिए आप Arrays.fill () या घोषणा के भाग के रूप में उपयोग कर सकते हैं

int[] a = new int[] {0, 0, 0, 0};

कुछ स्क्रिप्टिंग भाषाओं में अंकगणितीय श्रृंखला के साथ सरणियों को भरने के लिए जावा में कोई शॉर्टकट नहीं हैं।


-3
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

10
साइट पर आपका स्वागत है! यदि आप इसके लिए कुछ स्पष्टीकरण जोड़ सकते हैं, तो केवल कुछ कोड को नीचे करने के बजाय यह उत्तर बेहतर होगा। यह 7 साल पुराने प्रश्न पर पहले से उपलब्ध अन्य उत्तरों में से किसी के लिए बेहतर क्यों होगा?
मोगादाद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.