2013-08-11 3 views
0

예약 된 배열의 크기를 얻는 방법을 알려주시겠습니까?문자열 배열 길이 java

봐이 :

public static String arr_list[][][][][]= new String[2][10][10][2][5]; 

나는 그것이 큰 배열 알고있다.

여기에 데이터를 배치하고 세 번째 요소의 데이터 크기를 가져 오려고합니다.

arr_list[0][0].length - 그래도 여전히 10을 반환합니다.

그러나 [0][0]에 난 단지 4 개 개의 값이 있습니다

arr_list[0][0][0].. 
arr_list[0][0][1].. 
arr_list[0][0][2].. 
arr_list[0][0][3].. 

어떻게 4하지 10 반환을?

+6

정말 5d 어레이가 필요합니까? 너 여기서 뭐하고있어? –

+1

또한 요소를 설정했는지 여부에 관계없이 요소가 있기 때문에 10을 반환합니다. –

+0

그러나 '10'은 정답입니다. 'arr_list [0] [0] [9]'는 5 개의 문자열 각각 2 개의 배열을 포함하는 배열입니다. – ruakh

답변

1

넌 5D 어레이를 초기화 한 ..... 1 차원 크기

하기 때문에 전체 크기가 될 것이다 .. 10 3D 10도 4d는도 2 및도 5 (d)의 크기가 5 임 2,2d이다 2 * 10 * 10 * 10 * 2 * 5 = 20,000 비워두면 자동으로 null 문자로 채워집니다 ...... 크기를 계산하려면 .... 어디에서 찾을 수 있습니까? 첫 번째 널 문자이며

+0

Nice; D 당신이 맞습니다. 5d arraylist가 더 좋은 방법일까요? – user2652995

+2

@ user2652995 : ** No **, 왜 5 차원이 필요한 올바른 이유를 제시하지 않으면 적절한 것을 사용해야합니다. 아마 몇몇 커스텀 클래스 일 겁니다. – jlordo

2

배열이 일정 크기의 컨테이너가 전에 항상 선언 길이를 가지고있는 요소를 계산, 이것은 당신이 항상 10

이 유를 고려 얻을 것이다 이유 대신 Lists (예 : ArrayList)을 부릅니다.

+0

5d arraylist를 만들 수 있습니까? 어떻게 말해 줄 수 있니? – user2652995

+4

@ user2652995 : 경험 많은 개발자 임에도 불구하고 2 차원 이상의 배열 주위로 머리를 간신히 감쌀 수 있습니다. 5-d 어레이 (또는 5-d 목록)는 아마도 문제에 대한 적절한 해결책이 아니기 때문에 달성하고자하는 것을 알려 주어야합니다. –

+0

만약 당신이 정말로 ** 필요하다면, 5d ArrayList는 ArrayLists의 ArrayList에 대한 ArrayList의 ArrayList가 될 것입니다. 그러나 실제로 2 차원 이상이 실제로 필요하다는 것을 의심합니다. – lejlot

0

배열을 new String[2][10][10][2][5]으로 초기화하면 시스템에 arr_list [0] [0]에 10 개의 요소가 있음을 명시 적으로 말한 것입니다. 나는 그것이 당신을 믿을 것이고, 10 요소 배열을 만들 것 같네요.

실제 요소의 수에 따라 크기를 변경하려면 동적으로 초기화해야합니다.

public static String arr_list[][][][][]= new String[2][][][][];String[][][][] 유형의 null 참조가 두 개인 arr_list를 만듭니다. 다음 레벨에서 실제로 필요한 요소의 수를 포함하는 배열로 각 요소를 초기화 할 수 있습니다.