File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Soft Skills: The software developer's life manual this week in the Jobs Discussion forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Array

 
srinivas sridaragaddi
Ranch Hand
Posts: 225
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator




options:
prints null
prints nullnull
compile-time error
Run-time exception

answer:run-time exception

ArrayIndexOutOfBoundsException at line:1

Explain
 
suresh mulagala
Ranch Hand
Posts: 41
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Because a3 is being converted to a max of A[3][2][1] when you are doing



so the utmost you can do is a3[2][1][0]
 
swati cha
Ranch Hand
Posts: 40
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
if i compile the above program i am gettein error like..

A cannot be resolved to a type
could you explain this.
 
Srikanth Iyer
Ranch Hand
Posts: 52
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
in the above mentioned code your are tryiing to create and array of Type class A and thus you should declare a class named and thenn complie.

just add class a{} in your code and it will complie fine.
 
Burkhard Hassel
Ranch Hand
Posts: 1274
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In the first part:
A[] a1=new A[1];
A[][] a2=new A[2][1];
A[][][] a3=new A[3][3][3];
System.out.println(a3[2][2][2]);

The arrays are created, and the default values (null) are put into their places.
Therefore the output is null.

Second part:

a1[0]=new A();
a2[0]=a2[1]=a1;
a3[0]=a3[1]=a3[2]=a2;
System.out.println(a3[2][2][2]);//1




a1 looks like this:
a1: { the new A() }

an array with only one element, length of the array is one.


When you say
a2[0]=a2[1]=a1;

a2 looks like:
a2: { a1, a1 }
Now, a2 no longer has the length of three because it has been reassigned.


and finally
a3[0]=a3[1]=a3[2]=a2;

a3 looks like:
a3: { a2, a2, a2 }



But when you want to have:
System.out.println(a3[2][2][2]);//1

Starting from left to right:
a3[2] points to a2 (all three elements of a3 are a2).

Therefore
a3[2] [2] is the same as
a2[2]
but a2 has only a2[0] and a2[1] (see bold line above), therefore the exception.


Perhaps draw the arrays on a sheet of paper.


Yours,
Bu.
 
suresh mulagala
Ranch Hand
Posts: 41
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Swathi try this...

 
dhwani mathur
Ranch Hand
Posts: 621
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This was a superbb explanation

by Mr Burkhard Hassel !!
 
srinivas sridaragaddi
Ranch Hand
Posts: 225
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Burkhard for explaining so briefly....

Thank you for helping me understand many topics as you have replied to most of my posts...
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic