टू डाइमेंशनल एरे (Two Dimensional Array)

कुछ परिस्थितियों में वन-डाइमेंशनल एरे वैल्यूज़ को स्टोर करने के लिए उपयुक्त नहीं रहता है। उदाहरण के लिए एक कक्षा के 100 विद्यार्थियों के प्राप्तांक तथा अधिकतम अंक यदि एक ही वेरिएबल में स्टोर कराना चाहें तो यह कार्य वन-डाइमेंशनल एरे में नहीं हो सकता है। इसके लिए हमें टू डाइमेंशनल एरे की आवश्यकता होगी। इस टू डाइमेंशनल एरे के एक डाइमेंशन में हम विद्यार्थियों के अंक तथा दूसरे डाइमेंशन में उसके अधिकतम अंक स्टोर करवा सकते हैं। टू डाइमेंशनल एरे को निम्न प्रकार से डिक्लेयर किया जाता है -

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

नीचे दिए गए उदाहरण में 2x3 के एक टू डाइमेंशनल एरे की डिफ़ॉल्ट वैल्यूज को प्रिंट कराया गया है-

class Main
{
  public static void main(String[] args)
  {
    int a[][] = new int[2][3];
    int r, c;

    for(r=0; r < 2; r++)
    {
      for(c=0; c < 3; c++)
      {
        System.out.print(a[r][c] + " ");
      }
      System.out.println();
    }
  }
}

Output:

0 0 0 
0 0 0

नीचे दिए गए उदाहरण में 2x3 के एक टू डाइमेंशनल एरे को डिक्लेरेशन के समय ही इनिशियलाइज़ कराया गया है-

class Main
{
  public static void main(String[] args)
  {
    int a[][] = new int[][]{{1, 2, 3}, {4, 5, 6}};
    int r, c;

    for(r=0; r < 2; r++)
    {
      for(c=0; c < a[r].length; c++)
      {
        System.out.print(a[r][c] + " ");
      }
      System.out.println();
    }
  }
}

Output:

1 2 3 
4 5 6

उदाहरण: इनिशियलाइज़ेशन -

class Main
{
  public static void main(String[] args)
  {
    int a[][];
    a = new int[][]{{1, 2, 3}, {4, 5, 6}};
    int r, c;

    for(r=0; r < 2; r++)
    {
      for(c=0; c < a[r].length; c++)
      {
        System.out.print(a[r][c] + " ");
      }
      System.out.println();
    }
  }
}

Output:

1 2 3 
4 5 6

उदाहरण: इनिशियलाइज़ेशन -

class Main
{
  public static void main(String[] args)
  {
    int a[][] = {{1, 2, 3}, {4, 5, 6}};
    int r, c;

    for(r=0; r < a.length; r++)      //a.length returns number of rows
    {
      for(c=0; c < a[r].length; c++)
      {
        System.out.print(a[r][c] + " ");
      }
      System.out.println();
    }
  }
}

Output:

1 2 3 
4 5 6

नीचे दिए गए उदाहरण में 3x2 के एक टू डाइमेंशनल एरे में वैल्यूज स्टोर करवा कर उन्हें प्रिंट करवाया गया है।

class Demo
{
  public static void main(String arrr[])
  {
      int a[][] = new int[3][2];
      //Storing Values
      a[0][0] = 69;
      a[0][1] = 100;
      a[1][0] = 115;
      a[1][1] = 150;
      a[2][0] = 38;
      a[2][1] = 50;

      //Printing Values
      System.out.println(a[0][0] + ", " + a[0][1]);
      System.out.println(a[1][0] + ", " + a[1][1]);
      System.out.println(a[2][0] + ", " + a[2][1]);
  }
}

Output:

69, 100
115, 150
38, 50

नीचे दिए गए उदाहरण में यूजर से वैल्यूज पूछ कर उन्हें मैट्रिक्स के रूप में प्रिंट कराया गया है.

import java.util.*;
class Demo
{
  public static void main(String arrr[])
  {
    	int a[][] = new int[2][3];
    	int r, c;
      Scanner ob = new Scanner(System.in);
      for(r=0; r<=1; r++)
      {
        for(c=0; c<=2; c++)
        {
          System.out.print("Enter a no.: ");
          a[r][c] = ob.nextInt();
        }
      }
      for(r=0; r<=1; r++)
      {
        for(c=0; c<=2; c++)
        {
          System.out.print(a[r][c] + " ");
        }
        System.out.println();
      }
  }
}

Output:

Enter a no.1
Enter a no.2
Enter a no.3
Enter a no.4
Enter a no.5
Enter a no.6
1 2 3
4 5 6

ऐरे को आरग्यूमेंट की तरह पास करना (Passing array as arguments)

जावा में हम किसी अन्य वेरिएबल की तरह ऐरे को भी फंक्शन में पास करवा सकते हैं. इसे निम्नलिखित उदाहरण से समझा जा सकता है.

class Main
{
  public static void main(String[] args)
  {
    int a[][] = {{10, 20, 30}, {40, 50, 60}};

    show(a);
  }

  static void show(int x[][])
  {
    for(int r=0; r < x.length; r++)
    {
      for(int c=0; c < x[r].length; c++)
      {
        System.out.print(x[r][c] + " ");
      }
      System.out.println();
    }
  }
}

Output:

10 20 30 
40 50 60

ऐरे को फंक्शन से return करना (Returning array from function)

निम्नलिखित उदाहरण के माध्यम से समझाया गया है कि फंक्शन से ऐरे को किस प्रकार return कराया जा सकता है.

class Main
{
  public static void main(String[] args)
  {
    int a[][] = {{10, 20, 30}, {40, 50, 60}, {70, 80, 90}};
    int b[][];

    for(int r=0; r < a.length; r++)
    {
      for(int c=0; c < a[r].length; c++)
      {
        System.out.print(a[r][c] + " ");
      }
      System.out.println();
    }

    b = transpose(a);

    System.out.println("Transpose:");
    for(int r=0; r < b.length; r++)
    {
      for(int c=0; c < b[r].length; c++)
      {
        System.out.print(b[r][c] + " ");
      }
      System.out.println();
    }
  }
  static int[][] transpose(int x[][])
  {
    int t[][] = new int[x.length][x[0].length];

    for(int r=0; r < x.length; r++)
    {
      for(int c=0; c < x[r].length; c++)
      {
        t[r][c] = x[c][r];
      }
    }
    return t;
  }
}

Output:

10 20 30 
40 50 60 
70 80 90 
Transpose:
10 40 70 
20 50 80 
30 60 90
सुझाव / कमेंट