This week's book giveaway is in the JavaScript forum.We're giving away four copies of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js and have Paul Jensen on-line!See this thread for details.
Win a copy of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js this week in the JavaScript forum!
programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

array question and confusion

Kay Liew
Ranch Hand
Posts: 112
I got so confused about this array question from KB book. Can someone please explain to me why B is correct and C is wrong ?? I really couldn't see why C is wrong.

A: b2[0][1] = b;
B: b[0][0]= b3;
C: b2[1][1][0]=b[0][0];
D: b2[1][2][0]=b;
E: b[0][1][0][0]=b[0][0];
F: b2[0][1]=big;
Suggested answer is A,B,E,F. B is the one that confused me the most. According to page 32. Wouldn't answer B contradicted with the explaination
below ?

int[][] books = new int [3][1];
int[] numbers = new int[6];
in aNumber = 7;
books[0] = aNumber; //NOT OK, expecting an int array instead of an int
books[0] = numbers; //OK, numbers is an int array.

Kay

( tags corrected and typos in code corrected)
[ December 07, 2004: Message edited by: Barry Gaunt ]

Spaceact Wong
Greenhorn
Posts: 27
Originally posted by Kay Liew:
I got so confused about this array question from KB book. Can someone please explain to me why B is correct and C is wrong ?? I really couldn't see why C is wrong.

<CODE>
public class Test{
public staic void main(String [] args){
btye [][] big = new byte [7][7];
byte [][] b = new new byte [2][1];
byte b3 = 5;
byte b2 = [][][][] = new byte [2][3][2][2];
}
}
</CODE>

A: b2[0][1] = b;
B: b[0][0]= b3;
C: b2[1][1][0]=b[0][0];
D: b2[1][2][0]=b;
E: b[0][1][0][0]=b[0][0];
F: b2[0][1]=big;
Suggested answer is A,B,E,F. B is the one that confused me the most. According to page 32. Wouldn't answer B contradicted with the explaination
below ?

int[][] books = new int [3][1];
int[] numbers = new int[6];
in aNumber = 7;
books[0] = aNumber; //NOT OK, expecting an int array instead of an int
books[0] = numbers; //OK, numbers is an int array.

Kay

Hi,...
According to me, B is indeed correct and C is indeed wrong.

B: b[0][0]= b3;

B is the normal initialization of the array (in this case) and is the easiest part to be notified as correct answer!!!

C: b2[1][1][0]=b[0][0];

At the time you answer the question, did you regard answer 'A' as the correct answer??? I think if you put 'A' as the correct answer, then you should be able to know why C is incorrect, right?

C may only be correct, such as b2[1][1][0][0] = b[0][0];

E: b[0][1][0][0]=b[0][0];

By the way, is E shd be b2[0][1][0][0] = b[0][0];

Ransika deSilva
Ranch Hand
Posts: 524
Hi,
Let me explain this to you. Now the answer A is correct. b2 is a 4 dimensional array and b is a 2 dimensional array. There you are assigning a 2d array to b2[0][1]. So the total number of Dimensions are 4. Which makes b2 a 4d array. So that is correct. All you have to remember is that, the number of Dimensions should be the same as to declared once you assign arrays.
Answer B is also correct cause you are just assigning a value (NOT an array) to the 0th location of the 0th row.
Answer C in INCORRECT. The 4th element is an array and NOT a value. But what happens at the Answer C is that it is assigning a value as the 4th Dimension. b2[1][1][0]= b[0][0]; b[0][0] is a value and NOT an array. So now the b2 has only 3 Dimensions, which is WRONG. It should be 4 Dimensions.
Hope you can figure out the rest. Just ask if you need any more clarifications. Cheers.......

Kay Liew
Ranch Hand
Posts: 112
Ransika,

Your explanation made better sense. It does reinforce the explaination from the book. Thanks for clearing up my doubts.

k