Higgledy Smith
,
Ranch Hand
Mar 15, 2006 09:00:00
Given: int [][] a = {{1,2,}, {3,4}}; int[] b = (int[]) a[1]; This (int[]) in the above code is casting a 2-D array to a 1-D array?
Higgledy Smith
,
Ranch Hand
Mar 15, 2006 09:21:00
int [][] a = {{1,2,}, {3,4}}; int[] b = (int[]) a[1]; Object o1 = a; I don't understand why I can set my instance ref o1 to the instance ref of array a? I thought that the object o1 would have had to been a 2-D? Is it possible to display the contents of o1? As it is written now?
Keith Lynn
,
Ranch Hand
Mar 15, 2006 09:24:00
In the original question, a[1] is an array of ints, so the cast is legal. Recall that arrays are objects, and you can refer to any array as an Object.
Kj Reddy
,
Ranch Hand
Mar 15, 2006 09:27:00
In Java there is no concept of 2D arrays. When you say int[][] a, it creates array of arrays.
Higgledy Smith
,
Ranch Hand
Mar 15, 2006 09:47:00
OK. But what effect is (int[]) providing in the code?
Keith Lynn
,
Ranch Hand
Mar 15, 2006 10:08:00
It's unnecessary since a[1] is an int[]
Henry Wong
,
author
staff
Mar 15, 2006 10:10:00
Originally posted by Higgledy Smith: OK. But what effect is (int[]) providing in the code?
In the example, a[1] is already an int array, so the cast is not needed. Henry
Higgledy Smith
,
Ranch Hand
Mar 15, 2006 11:39:00
OK. I guess the example is not a good one. I was more trying to get someone with experience to tell me it is really casting an array. This is NOT explained in the SCJP 5.0 book but shows up in the self test on page 267.
Would anybody like some fudge? I made it an hour ago. And it goes well with a tiny ad ...
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com