मैं जावा में किसी ऐरे को कैसे घोषित और आरंभ कर सकता हूं?


2052

मैं जावा में किसी ऐरे को कैसे घोषित और आरंभ कर सकता हूं?


4
नया उत्तर पोस्ट करने से पहले, विचार करें कि इस प्रश्न के लिए पहले से ही 25+ उत्तर हैं। कृपया, सुनिश्चित करें कि आपका उत्तर उन सूचनाओं का योगदान करता है जो मौजूदा उत्तरों में नहीं हैं।
janniks

जवाबों:


2682

आप या तो सरणी घोषणापत्र या सरणी शाब्दिक का उपयोग कर सकते हैं (लेकिन केवल जब आप घोषित करते हैं और चर को तुरंत प्रभावित करते हैं, सरणी सरणी को किसी सरणी को पुन: असाइन करने के लिए उपयोग नहीं किया जा सकता है)।

आदिम प्रकारों के लिए:

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

// Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html

int [] myIntArray = IntStream.range(0, 100).toArray(); // From 0 to 99
int [] myIntArray = IntStream.rangeClosed(0, 100).toArray(); // From 0 to 100
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).toArray(); // The order is preserved.
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).sorted().toArray(); // Sort 

कक्षाओं के लिए String, उदाहरण के लिए , यह समान है:

String[] myStringArray = new String[3];
String[] myStringArray = {"a", "b", "c"};
String[] myStringArray = new String[]{"a", "b", "c"};

आरंभीकरण का तीसरा तरीका उपयोगी है जब आप पहले ऐरे को घोषित करते हैं और फिर इसे इनिशियलाइज़ करते हैं। यहां कास्ट जरूरी है।

String[] myStringArray;
myStringArray = new String[]{"a", "b", "c"};

33
ऐसा करने का दूसरा और तीसरा तरीका दोनों का उद्देश्य क्या है?
क़ाज़ी इरफ़ान

123
@iamcreasy ऐसा लगता है कि रिटर्न स्टेटमेंट के साथ काम करने का दूसरा तरीका नहीं है। return {1,2,3}एक त्रुटि देता है, जबकि return new int[]{1,2,3}ठीक काम करता है (यह मानते हुए कि आपका फ़ंक्शन पूर्णांक सरणी देता है)।
स्काइलर इटनर

1
@SkylarMT लेकिन हम अभी भी रिटर्न स्टेटमेंट के साथ उपयोग कर सकते हैं।
क़ाज़ी इरफ़ान

6
@iamcreasy मैंने हाल ही में एक फंक्शन लिखा है, जिसमें इन्टस की एक सरणी लौटी है। यदि फ़ंक्शन के अंदर कोई त्रुटि हुई, तो मैं चाहता था कि वह एक निश्चित मान लौटाए, लेकिन फ़ंक्शन को एक सरणी वापस करने के लिए आवश्यक था। वन-लाइनर रिटर्न स्टेटमेंट के लिए कौन सा तरीका काम करता है? केवल तीसरा।
स्काइलर इटनर

5
@apadana दूसरे मामले में आप एक अनाम ऑब्जेक्ट बना रहे हैं जो केवल एन्कोडिंग स्कोप (फ़ंक्शन या जो भी) में परिभाषित किया गया है। इसे कॉलर को वापस करने के बाद, यह अब वैध नहीं है। नए कीवर्ड का उपयोग करके आप ढेर से नई वस्तु आवंटित करते हैं और यह परिभाषित दायरे से बाहर मान्य है।
तेयुक्कम

280

दो प्रकार के सरणी हैं।

एक आयामी सरणी

डिफ़ॉल्ट मानों के लिए सिंटैक्स:

int[] num = new int[5];

या (कम पसंदीदा)

int num[] = new int[5];

दिए गए मूल्यों के साथ सिंटैक्स (चर / क्षेत्र आरंभीकरण):

int[] num = {1,2,3,4,5};

या (कम पसंदीदा)

int num[] = {1, 2, 3, 4, 5};

नोट: सुविधा के लिए int [] संख्या बेहतर है क्योंकि यह स्पष्ट रूप से बताता है कि आप यहाँ सरणी के बारे में बात कर रहे हैं। नहीं तो कोई फर्क नहीं। हर्गिज नहीं।

बहुआयामी सरणी

घोषणा

int[][] num = new int[5][2];

या

int num[][] = new int[5][2];

या

int[] num[] = new int[5][2];

प्रारंभ

 num[0][0]=1;
 num[0][1]=2;
 num[1][0]=1;
 num[1][1]=2;
 num[2][0]=1;
 num[2][1]=2;
 num[3][0]=1;
 num[3][1]=2;
 num[4][0]=1;
 num[4][1]=2;

या

 int[][] num={ {1,2}, {1,2}, {1,2}, {1,2}, {1,2} };

रैगर्ड एरे (या गैर-आयताकार एरे)

 int[][] num = new int[5][];
 num[0] = new int[1];
 num[1] = new int[5];
 num[2] = new int[2];
 num[3] = new int[3];

इसलिए यहां हम कॉलम को स्पष्ट रूप से परिभाषित कर रहे हैं।
दूसरा रास्ता:

int[][] num={ {1}, {1,2}, {1,2,3,4,5}, {1,2}, {1,2,3} };

पहुँच के लिए:

for (int i=0; i<(num.length); i++ ) {
    for (int j=0;j<num[i].length;j++)
        System.out.println(num[i][j]);
}

वैकल्पिक रूप से:

for (int[] a : num) {
  for (int i : a) {
    System.out.println(i);
  }
}

रग्ड सरणियाँ बहुआयामी सरणियाँ हैं।
स्पष्टीकरण के लिए आधिकारिक जावा ट्यूटोरियल में बहुआयामी सरणी विवरण देखें


डिफ़ॉल्ट मान के साथ सरणी के बजाय पहले एक शून्य / खाली सरणी के लिए नेतृत्व नहीं करेंगे?
vipin8169

मैं उस बिंदु पर सहमत हूं, और हम एक और विशेषता जोड़ सकते हैं, हम आकार को गतिशील रूप से बदल सकते हैं।
एडमिज्क

मैं आपसे इस बात पर बहस कर सकता हूं कि एक बहुआयामी सरणी सरणी का एक अलग "प्रकार" है। यह एक शब्द है जिसका उपयोग अन्य सरणी को समाहित करने के लिए एक सरणी का वर्णन करने के लिए किया जाता है। बाहरी सरणियाँ और आंतरिक सरणियाँ (और यदि वे मौजूद हैं, तो दोनों) केवल नियमित सरणियाँ हैं।
टिम एम।

127
Type[] variableName = new Type[capacity];

Type[] variableName = {comma-delimited values};



Type variableName[] = new Type[capacity]; 

Type variableName[] = {comma-delimited values};

यह भी मान्य है, लेकिन मैं प्रकार के बाद कोष्ठक पसंद करता हूं, क्योंकि यह देखना आसान है कि चर का प्रकार वास्तव में एक सरणी है।


22
मैं उस बिंदु पर सहमत हूं। चर का प्रकार "TYPE" नहीं है, लेकिन वास्तव में एक TYPE [] है, इसलिए यह मेरे लिए इस तरह से लिखने के लिए समझ में आता है।
चेत

3
Google शैली इसका भी सुझाव देती है।
वीनर

11
ध्यान दें कि यदि आप बाद वाले फॉर्म का उपयोग करते हैं, तो गलती करना आसान int[] a, b;नहीं होगा int a[], b;
जीरोने वेनवेल


31

मुझे लगता है कि यह उपयोगी है यदि आप प्रत्येक भाग को समझते हैं:

Type[] name = new Type[5];

Type[]चर के प्रकार को नाम कहा जाता है ("नाम" को पहचानकर्ता कहा जाता है )। शाब्दिक "प्रकार" आधार प्रकार है, और कोष्ठक का मतलब है कि यह आधार का सरणी प्रकार है। सरणी प्रकार अपने स्वयं के बदले प्रकार हैं, जो आपको बहुआयामी सरणियों को बनाने की अनुमति देता है जैसे (प्रकार का प्रकार [])। कीवर्ड नई सरणी के लिए मेमोरी आवंटित करने के लिए कहता है। ब्रैकेट के बीच की संख्या कहती है कि नई सरणी कितनी बड़ी होगी और कितनी मेमोरी आवंटित करनी है। उदाहरण के लिए, यदि जावा को पता है कि आधार प्रकार 32 बाइट्स लेता है, और आप आकार 5 चाहते हैं, तो उसे आंतरिक रूप से 32 * 5 = 160 बाइट्स आवंटित करने की आवश्यकता है।Type[][]newType

आप वहां पहले से मौजूद मानों के साथ सरणियाँ भी बना सकते हैं, जैसे कि

int[] name = {1, 2, 3, 4, 5};

जो न केवल खाली जगह बनाता है बल्कि उन मूल्यों से भरता है। जावा बता सकता है कि आदिम पूर्णांक हैं और उनमें से 5 हैं, इसलिए सरणी का आकार अनुमानित रूप से निर्धारित किया जा सकता है।


इसलिए इसे शामिल करना आवश्यक नहीं है int[] name = new int[5]?
कुकी मॉन्स्टर

31

निम्नलिखित एक सरणी की घोषणा को दर्शाता है, लेकिन सरणी आरंभीकृत नहीं है:

 int[] myIntArray = new int[3];

निम्नलिखित घोषणा को दर्शाता है और साथ ही सारणी का आरम्भिकरण भी करता है:

int[] myIntArray = {1,2,3};

अब, निम्नलिखित भी घोषणा को दर्शाता है और साथ ही सरणी का आरम्भिकरण:

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

लेकिन यह तीसरा एक अनाम सरणी-वस्तु निर्माण की संपत्ति को दर्शाता है जो एक संदर्भ चर "myIntArray" द्वारा इंगित किया गया है, इसलिए यदि हम सिर्फ "नया int [] {1,2,3} लिखते हैं;" फिर यह है कि अनाम सरणी-ऑब्जेक्ट कैसे बनाया जा सकता है।

अगर हम सिर्फ लिखते हैं:

int[] myIntArray;

यह सरणी की घोषणा नहीं है, लेकिन निम्नलिखित कथन उपरोक्त घोषणा को पूरा करता है:

myIntArray=new int[3];

2
दूसरे और तीसरे दृष्टिकोण के बीच कोई अंतर नहीं है, इसके अलावा दूसरा दृष्टिकोण केवल तब काम करता है जब आप एक चर घोषित कर रहे हैं। यह स्पष्ट नहीं है कि आपके द्वारा "अनाम सरणी-ऑब्जेक्ट निर्माण की संपत्ति" का क्या अर्थ है, लेकिन वे वास्तव में कोड के बराबर टुकड़े हैं।
जॉन स्कीट

4
इसके अलावा, पहला स्निपेट सरणी को इनिशियलाइज़ करता है - यह हर ऐरे तत्व के लिए मान 0 होने की गारंटी है।
जॉन स्कीट

क्या वास्तव में दूसरे और तीसरे दृष्टिकोण के बीच कोई अंतर नहीं है?
टाइपेलोजिक

27

वैकल्पिक रूप से,

// Either method works
String arrayName[] = new String[10];
String[] arrayName = new String[10];

यह एक सरणी की घोषणा करता है जिसे arrayNameआकार 10 कहा जाता है (आपके पास उपयोग करने के लिए 9 से तत्व 0 हैं)।


7
किस मानक का उपयोग करना है? मैंने केवल पूर्व की खोज की है, और मुझे यह भ्रामक रूप से भ्रामक लगता है: |
एंटी अर्थ

2
मेरे प्रोफेसर ने जो कहा है, उसके लिए जावा में दूसरा तरीका अधिक विशिष्ट है और यह बेहतर बताता है कि क्या चल रहा है; चर के प्रकार से संबंधित एक सरणी के रूप में डाली गई थी।
सेलेरिटास

2
एक साइड नोट के लिए: एक भाषा जिसका अर्थ एक से अधिक शब्दार्थ है, जिसमें एक चीज का अर्थ खराब भाषा डिजाइन है।
मुहम्मद सुलेमान

26

इसके अलावा, यदि आप कुछ अधिक गतिशील चाहते हैं तो सूची इंटरफ़ेस है। यह उतना अच्छा प्रदर्शन नहीं करेगा, लेकिन अधिक लचीला है:

List<String> listOfString = new ArrayList<String>();

listOfString.add("foo");
listOfString.add("bar");

String value = listOfString.get(0);
assertEquals( value, "foo" );

2
आपके द्वारा बनाई गई सूची में "<>" क्या है?
साइप्रस

@CyprUS Listएक सामान्य वर्ग है, इसमें एक पैरामीटर के रूप में एक प्रकार है, जो संलग्न है <>। यह मदद करता है क्योंकि आपको केवल एक बार एक सामान्य प्रकार को परिभाषित करने की आवश्यकता है और आप इसे कई अलग-अलग प्रकारों के साथ उपयोग कर सकते हैं। अधिक विस्तृत विवरण के लिए docs.oracle.com/javase/tutorial/java/generics/types.html
Heimdall

15

एक सरणी बनाने के दो मुख्य तरीके हैं:

यह एक खाली सरणी के लिए:

int[] array = new int[n]; // "n" being the number of spaces to allocate in the array

और यह एक, एक आरंभिक सरणी के लिए:

int[] array = {1,2,3,4 ...};

आप इस तरह बहुआयामी सरणियाँ भी बना सकते हैं:

int[][] array2d = new int[x][y]; // "x" and "y" specify the dimensions
int[][] array2d = { {1,2,3 ...}, {4,5,6 ...} ...};

11

intउदाहरण के लिए आदिम प्रकार लें । घोषणा और intसरणी के कई तरीके हैं :

int[] i = new int[capacity];
int[] i = new int[] {value1, value2, value3, etc};
int[] i = {value1, value2, value3, etc};

जहां इन सभी में, आप के int i[]बजाय का उपयोग कर सकते हैं int[] i

प्रतिबिंब के साथ, आप उपयोग कर सकते हैं (Type[]) Array.newInstance(Type.class, capacity);

ध्यान दें कि विधि मापदंडों में, ...इंगित करता है variable arguments। अनिवार्य रूप से, किसी भी संख्या में पैरामीटर ठीक है। कोड के साथ व्याख्या करना आसान है:

public static void varargs(int fixed1, String fixed2, int... varargs) {...}
...
varargs(0, "", 100); // fixed1 = 0, fixed2 = "", varargs = {100}
varargs(0, "", 100, 200); // fixed1 = 0, fixed2 = "", varargs = {100, 200};

विधि के अंदर, varargsएक सामान्य के रूप में व्यवहार किया जाता है int[]Type...केवल विधि मापदंडों में उपयोग किया जा सकता है, इसलिए int... i = new int[] {}संकलन नहीं होगा।

ध्यान दें कि int[]किसी विधि (या किसी अन्य Type[]) को पास करते समय, आप तीसरे तरीके का उपयोग नहीं कर सकते हैं। बयान में int[] i = *{a, b, c, d, etc}*, संकलक मानता है कि {...}साधन ए int[]। लेकिन ऐसा इसलिए है क्योंकि आप एक चर घोषित कर रहे हैं। किसी सरणी को किसी विधि से पास करते समय, घोषणा या तो होनी चाहिए new Type[capacity]याnew Type[] {...}

बहुआयामी सरणी

बहुआयामी सरणियों से निपटने के लिए बहुत कठिन हैं। अनिवार्य रूप से, एक 2D सरणी सरणियों का एक सरणी है। int[][]का मतलब सरणी है int[]। कुंजी यह है कि अगर एक के int[][]रूप में घोषित किया जाता है int[x][y], तो अधिकतम सूचकांक है i[x-1][y-1]। अनिवार्य रूप से, एक आयताकार int[3][5]है:

[0, 0] [1, 0] [2, 0]
[0, 1] [1, 1] [2, 1]
[0, 2] [1, 2] [2, 2]
[0, 3] [1, 3] [2, 3]
[0, 4] [1, 4] [2, 4]

10

जावा 9 में

विभिन्न IntStream.iterateऔर IntStream.takeWhileविधियों का उपयोग करना :

int[] a = IntStream.iterate(10, x -> x <= 100, x -> x + 10).toArray();

Out: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]


int[] b = IntStream.iterate(0, x -> x + 1).takeWhile(x -> x < 10).toArray();

Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

जावा 10 में

स्थानीय परिवर्तनीय प्रकार का प्रयोग :

var letters = new String[]{"A", "B", "C"};

9

यदि आप प्रतिबिंबों का उपयोग करके ऐरे बनाना चाहते हैं तो आप ऐसा कर सकते हैं:

 int size = 3;
 int[] intArray = (int[]) Array.newInstance(int.class, size ); 

आप इस तरह से एक सरणी क्यों बनाना चाहेंगे?
डोरियन ग्रे

9

ऑब्जेक्ट संदर्भों की एक सरणी की घोषणा:

class Animal {}

class Horse extends Animal {
    public static void main(String[] args) {

        /*
         * Array of Animal can hold Animal and Horse (all subtypes of Animal allowed)
         */
        Animal[] a1 = new Animal[10];
        a1[0] = new Animal();
        a1[1] = new Horse();

        /*
         * Array of Animal can hold Animal and Horse and all subtype of Horse
         */
        Animal[] a2 = new Horse[10];
        a2[0] = new Animal();
        a2[1] = new Horse();

        /*
         * Array of Horse can hold only Horse and its subtype (if any) and not
           allowed supertype of Horse nor other subtype of Animal.
         */
        Horse[] h1 = new Horse[10];
        h1[0] = new Animal(); // Not allowed
        h1[1] = new Horse();

        /*
         * This can not be declared.
         */
        Horse[] h2 = new Animal[10]; // Not allowed
    }
}

7

एरे वस्तुओं की एक क्रमिक सूची है

int item = value;

int [] one_dimensional_array = { value, value, value, .., value };

int [][] two_dimensional_array =
{
  { value, value, value, .. value },
  { value, value, value, .. value },
    ..     ..     ..        ..
  { value, value, value, .. value }
};

यदि यह एक वस्तु है, तो यह एक ही अवधारणा है

Object item = new Object();

Object [] one_dimensional_array = { new Object(), new Object(), .. new Object() };

Object [][] two_dimensional_array =
{
  { new Object(), new Object(), .. new Object() },
  { new Object(), new Object(), .. new Object() },
    ..            ..               ..
  { new Object(), new Object(), .. new Object() }
};

वस्तुओं के मामले में, आपको nullउन्हें उपयोग करने के लिए आरंभ करने के लिए इसे निर्दिष्ट करने की आवश्यकता है new Type(..), जैसे कक्षाएं Stringऔर Integerविशेष मामले हैं जो निम्नलिखित के रूप में सौंपे जाएंगे।

String [] a = { "hello", "world" };
// is equivalent to
String [] a = { new String({'h','e','l','l','o'}), new String({'w','o','r','l','d'}) };

Integer [] b = { 1234, 5678 };
// is equivalent to
Integer [] b = { new Integer(1234), new Integer(5678) };

सामान्य तौर पर आप ऐसे Mआयामी बना सकते हैं जो आयामी हैं

int [][]..[] array =
//  ^ M times [] brackets

    {{..{
//  ^ M times { bracket

//            this is array[0][0]..[0]
//                         ^ M times [0]

    }}..}
//  ^ M times } bracket
;

यह ध्यान देने योग्य है कि Mअंतरिक्ष के संदर्भ में एक आयामी सरणी बनाना महंगा है। जब से आप सभी Mआयामों के साथ एक आयामी सरणी बनाते हैं, सरणी Nका कुल आकार से बड़ा होता है N^M, क्योंकि प्रत्येक सरणी में एक संदर्भ होता है, और एम-आयाम पर संदर्भों का एक (एम -1)-आयामी आयाम होता है। कुल आकार निम्नानुसार है

Space = N^M + N^(M-1) + N^(M-2) + .. + N^0
//      ^                              ^ array reference
//      ^ actual data

7

Java 8 में आप इस तरह का उपयोग कर सकते हैं।

String[] strs = IntStream.range(0, 15)  // 15 is the size
    .mapToObj(i -> Integer.toString(i))
    .toArray(String[]::new);

6

क्लास ऑब्जेक्ट की सरणियाँ बनाने के लिए आप इसका उपयोग कर सकते हैं java.util.ArrayList। एक सरणी को परिभाषित करने के लिए:

public ArrayList<ClassName> arrayName;
arrayName = new ArrayList<ClassName>();

मान को सरणी में असाइन करें:

arrayName.add(new ClassName(class parameters go here);

सरणी से पढ़ें:

ClassName variableName = arrayName.get(index);

ध्यान दें:

variableNameसरणी का एक संदर्भ है जिसका अर्थ है कि हेरफेर variableNameकरना हेरफेर करेगाarrayName

छोरों के लिए:

//repeats for every value in the array
for (ClassName variableName : arrayName){
}
//Note that using this for loop prevents you from editing arrayName

लूप के लिए जो आपको संपादित करने की अनुमति देता है arrayName(लूप के लिए पारंपरिक):

for (int i = 0; i < arrayName.size(); i++){
    //manipulate array here
}

5

जावा 8 और उसके बाद के लिए घोषणा और आरंभ करें। एक साधारण पूर्णांक सरणी बनाएँ:

int [] a1 = IntStream.range(1, 20).toArray();
System.out.println(Arrays.toString(a1));
// Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

[-50, 50] और युगल [0, 1E17] के बीच पूर्णांकों के लिए एक यादृच्छिक सरणी बनाएँ:

int [] a2 = new Random().ints(15, -50, 50).toArray();
double [] a3 = new Random().doubles(5, 0, 1e17).toArray();

शक्ति-दो क्रम:

double [] a4 = LongStream.range(0, 7).mapToDouble(i -> Math.pow(2, i)).toArray();
System.out.println(Arrays.toString(a4));
// Output: [1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0]

स्ट्रिंग के लिए [] आपको एक निर्माता निर्दिष्ट करना होगा:

String [] a5 = Stream.generate(()->"I will not squeak chalk").limit(5).toArray(String[]::new);
System.out.println(Arrays.toString(a5));

बहुआयामी सरणियाँ:

String [][] a6 = List.of(new String[]{"a", "b", "c"} , new String[]{"d", "e", "f", "g"})
    .toArray(new String[0][]);
System.out.println(Arrays.deepToString(a6));
// Output: [[a, b, c], [d, e, f, g]]

क्या -50 और / या +50 वास्तव में शामिल हैं? यही है, एक या दोनों सिरों पर आंतरिक खुला है?
पीटर मोर्टेंसन

1
-50 शामिल है और +50 को बाहर रखा गया है। जावा एपीआई की यह जानकारी "दी गई मूल (समावेशी) और बाध्य (अनन्य)।" मैं विकि से अंतराल घोषणा का उपयोग करता हूँ । इसलिए मुझे लगता है कि यह अधिक सही होगा [-50, 50)
किरिल पोडलिवेव

3

ArrayList को घोषित करने और आरंभ करने का दूसरा तरीका:

private List<String> list = new ArrayList<String>(){{
    add("e1");
    add("e2");
}};

2

यहाँ बहुत सारे उत्तर हैं। मैं सरणियाँ बनाने के लिए कुछ ट्रिकी तरीके जोड़ रहा हूँ ( परीक्षा के दृष्टिकोण से यह जानना अच्छा है)

  1. एक सरणी को घोषित और परिभाषित करें

    int intArray[] = new int[3];

    यह लंबाई की एक सरणी बनाएगा 3. जैसा कि यह एक आदिम प्रकार धारण करता है, int, सभी मान डिफ़ॉल्ट रूप से 0 पर सेट होते हैं। उदाहरण के लिए,

    intArray[2]; // Will return 0
  2. चर नाम से पहले बॉक्स कोष्ठक [] का उपयोग करना

    int[] intArray = new int[3];
    intArray[0] = 1;  // Array content is now {1, 0, 0}
  3. आरंभ और सरणी को डेटा प्रदान करते हैं

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

    इस बार बॉक्स ब्रैकेट में आकार का उल्लेख करने की कोई आवश्यकता नहीं है। यहां तक ​​कि इसका एक सरल रूप है:

    int[] intArray = {1, 2, 3, 4};
  4. लंबाई की एक सरणी ०

    int[] intArray = new int[0];
    int length = intArray.length; // Will return length 0

    बहुआयामी सरणियों के लिए भी ऐसा ही है

    int intArray[][] = new int[2][3];
    // This will create an array of length 2 and
    //each element contains another array of length 3.
    // { {0,0,0},{0,0,0} }
    int lenght1 = intArray.length; // Will return 2
    int length2 = intArray[0].length; // Will return 3

चर से पहले बॉक्स कोष्ठक का उपयोग करना:

    int[][] intArray = new int[2][3];

यह बिल्कुल ठीक है यदि आप अंत में एक बॉक्स ब्रैकेट रखते हैं:

    int[] intArray [] = new int[2][4];
    int[] intArray[][] = new int[2][3][4]

कुछ उदाहरण

    int [] intArray [] = new int[][] {{1,2,3},{4,5,6}};
    int [] intArray1 [] = new int[][] {new int[] {1,2,3}, new int [] {4,5,6}};
    int [] intArray2 [] = new int[][] {new int[] {1,2,3},{4,5,6}}
    // All the 3 arrays assignments are valid
    // Array looks like {{1,2,3},{4,5,6}}

यह अनिवार्य नहीं है कि प्रत्येक आंतरिक तत्व एक ही आकार का हो।

    int [][] intArray = new int[2][];
    intArray[0] = {1,2,3};
    intArray[1] = {4,5};
    //array looks like {{1,2,3},{4,5}}

    int[][] intArray = new int[][2] ; // This won't compile. Keep this in mind.

यदि आप उपरोक्त सिंटैक्स का उपयोग कर रहे हैं, तो आपको यह सुनिश्चित करना होगा कि आगे की दिशा आपको बॉक्स कोष्ठक में मान निर्दिष्ट करनी है। और यह संकलन नहीं होगा। कुछ उदाहरण:

    int [][][] intArray = new int[1][][];
    int [][][] intArray = new int[1][2][];
    int [][][] intArray = new int[1][2][3];

एक अन्य महत्वपूर्ण विशेषता सहसंयोजक है

    Number[] numArray = {1,2,3,4};   // java.lang.Number
    numArray[0] = new Float(1.5f);   // java.lang.Float
    numArray[1] = new Integer(1);    // java.lang.Integer
   // You can store a subclass object in an array that is declared
   // to be of the type of its superclass.
   // Here 'Number' is the superclass for both Float and Integer.

   Number num[] = new Float[5]; // This is also valid

महत्वपूर्ण: संदर्भित प्रकारों के लिए, सरणी में संग्रहीत डिफ़ॉल्ट मान शून्य है।


2

आप इसके साथ भी कर सकते हैं java.util.Arrays:

List<String> number = Arrays.asList("1", "2", "3");

Out: ["1", "2", "3"]

यह एक बहुत सरल और सीधा है।


मैंने इसे अन्य उत्तरों में नहीं देखा इसलिए मुझे लगा कि मैं इसे जोड़ सकता हूं।
सिलहारे

1
एक सूची सरणी नहीं है
तिरो

कुछ समय के लिए लोगों को एरे का मतलब होता है, जब वे एक सूची चाहते हैं।
सिलहारे

1

स्थानीय चर प्रकार के अनुमानों के साथ आपको केवल एक बार प्रकार बताना होगा:

var values = new int[] { 1, 2, 3 };

या

int[] values = { 1, 2, 3 }

जावा में नहीं है var
कैमरन हडसन

3
@CameronHudson जावा 10 में var openjdk.java.net/jeps/286
Konstantin Spirin

1

ऐरे के दो बुनियादी प्रकार हैं।

स्टेटिक ऐरे: फिक्स्ड साइज ऐरे (इसका आकार शुरुआत में घोषित किया जाना चाहिए और बाद में इसे बदला नहीं जा सकता)

डायनामिक एरे: इसके लिए कोई आकार सीमा नहीं मानी जाती है। (जावा में शुद्ध गतिशील सरणियाँ मौजूद नहीं हैं। इसके बजाय, सूची को सबसे अधिक प्रोत्साहित किया गया है)

पूर्णांक, स्ट्रिंग, फ्लोट, आदि का एक स्थिर सरणी घोषित करने के लिए ... बलो घोषणा और आरंभीकरण बयानों का उपयोग करें।

    int[] intArray = new int[10]; 
    String[] intArray = new int[10]; 
    float[] intArray = new int[10]; 
    
   // here you have 10 index starting from 0 to 9

गतिशील सुविधाओं का उपयोग करने के लिए, आपको सूची का उपयोग करना होगा ... सूची शुद्ध गतिशील सरणी है और शुरुआत में आकार घोषित करने की आवश्यकता नहीं है। बोला JAVA> में सूची घोषित करने का उचित तरीका है

        ArrayList<String> myArray = new ArrayList<String>();
        myArray.add("Value 1: something");
        myArray.add("Value 2: something more");


1
मेरे उत्तर को बेहतर बनाने के लिए @Matheus धन्यवाद। मैं आपसे अनुरोध करूंगा कि आप इसे बढ़ाएं, ताकि यह अधिक उपयोगकर्ताओं तक पहुंच सके।
जिया मुहम्मद

0

घोषणा को छोड़ें: int[] arr;

प्रारंभिक ऐरे: int[] arr = new int[10];10 सरणी में अनुमत तत्वों की संख्या का प्रतिनिधित्व करता है

घोषणा बहु आयामी: int[][] arr;

प्रारंभिक बहुआयामी सरणी: int[][] arr = new int[10][17];10 पंक्तियों और 17 स्तंभों और 170 तत्वों क्योंकि 10 गुणा 17 170 है।

किसी सरणी को आरम्भ करने का अर्थ है उसके आकार को निर्दिष्ट करना।


0

किसी ऐरे को घोषित करना और आरंभ करना बहुत आसान है। उदाहरण के लिए, आप पाँच पूर्णांक तत्वों को सहेजना चाहते हैं जो एक सरणी में 1, 2, 3, 4 और 5 हैं। आप इसे निम्नलिखित तरीके से कर सकते हैं:

ए)

int[] a = new int[5];

या

ख)

int[] a = {1, 2, 3, 4, 5};

इसलिए मूल पैटर्न विधि के आधार पर आरंभीकरण और घोषणा के लिए है:

datatype[] arrayname = new datatype[requiredarraysize];

datatype निचले मामले में होना चाहिए।

इसलिए मूल पैटर्न विधि द्वारा आरंभीकरण और घोषणा के लिए है:

यदि यह एक स्ट्रिंग सरणी है:

String[] a = {"as", "asd", "ssd"};

यदि यह एक चरित्र सरणी है:

char[] a = {'a', 's', 'w'};

फ्लोट डबल के लिए, सरणी का प्रारूप पूर्णांक के समान होगा।

उदाहरण के लिए:

double[] a = {1.2, 1.3, 12.3};

लेकिन जब आप ऐरे को "विधि" से घोषित करते हैं और शुरू करते हैं, तो आपको मैन्युअल रूप से या लूप या कुछ और से मान दर्ज करना होगा।

लेकिन जब आप इसे "विधि b" द्वारा करते हैं, तो आपको मैन्युअल रूप से मान दर्ज नहीं करना होगा।


0

सरणी में प्राइमरी डेटा प्रकार के साथ-साथ श्रेणी की वस्तुओं के अनुसार सरणी की परिभाषा हो सकती है। आदिम डेटा प्रकारों के मामले में, वास्तविक मान सन्निहित स्मृति स्थानों में संग्रहीत किए जाते हैं। एक वर्ग की वस्तुओं के मामले में, वास्तविक वस्तुओं को ढेर खंड में संग्रहीत किया जाता है।


वन-डायमेंशनल एरे:
एक-आयामी सरणी घोषणा का सामान्य रूप है

type var-name[];
OR
type[] var-name;

जावा में एक ऐरे को इंस्टेंट करना

var-name = new type [size];

उदाहरण के लिए

    int intArray[];    //declaring array
    intArray = new int[20];  // allocating memory to array
    // the below line is equals to line1 + line2
    int[] intArray = new int[20]; // combining both statements in one
     int[] intArray = new int[]{ 1,2,3,4,5,6,7,8,9,10 }; 
    // accessing the elements of the specified array
    for (int i = 0; i < intArray.length; i++)
    System.out.println("Element at index " + i + " : "+ intArray[i]);

रेफरी: https://www.geeksforgeeks.org/arrays-in-java/


0

फिल्मों के वर्ग के साथ एक और पूर्ण उदाहरण movies

public class A {

        public static void main(String[] args) {

                class Movie{

                    String movieName;
                    String genre;
                    String movieType;
                    String year;
                    String ageRating;
                    String rating;

                    public Movie(String [] str)
                    {
                        this.movieName = str[0];
                        this.genre = str[1];
                        this.movieType = str[2];
                        this.year = str[3];
                        this.ageRating = str[4];
                        this.rating = str[5];    
                    }

                }

                String [] movieDetailArr = {"Inception", "Thriller", "MovieType", "2010", "13+", "10/10"};

                Movie mv = new Movie(movieDetailArr);

                System.out.println("Movie Name: "+ mv.movieName);
                System.out.println("Movie genre: "+ mv.genre);
                System.out.println("Movie type: "+ mv.movieType);
                System.out.println("Movie year: "+ mv.year);
                System.out.println("Movie age : "+ mv.ageRating);
                System.out.println("Movie  rating: "+ mv.rating);


            }

        } 

-1
int[] x=new int[enter the size of array here];

उदाहरण:

int[] x=new int[10];

या

int[] x={enter the elements of array here];

उदाहरण:

int[] x={10,65,40,5,48,31};

-7
int[] SingleDimensionalArray = new int[2]

int[][] MultiDimensionalArray = new int[3][4]

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