본문 바로가기

이것저것 알게된 것

2차원배열 특정값으로 채우기

백준 10026을 풀다가 알게된 사실


visited배열을 boolean타입의 2차원배열로 생성해놓고,

2차원배열인것을 잊고 Arrays.fill(visited,false)를 썼다가

java.lang.ArrayStoreException 에러가 났다.


java.lang.ArrayStoreException에 대해 API에 다음과 같이 쓰여져있다.

Thrown to indicate that an attempt has been made to store the wrong type of object into an array of objects. For example, the following code generates an ArrayStoreException:

즉, "잘못된 타입의 객체를 배열에 저장하려고 할 때" 나타나는 에러이다.


Arrays.fill(visited,false)는 1차원배열의 값을 채울때 사용한다.

2차원배열에 값을 채우기 위해서는

boolean visited[][] = new boolean[3][5];

for(boolean a[]:visited)     //visited길이는 3

Arrays.fill(a,false);

로 써야한다.


내친김에 3차원 배열에 특정값을 채우는 것도 생각해 봤다.

boolean map[][][] = new boolean[4][3][3];

for(boolean first[][]:map)  //map의 길이는 4

{

for(boolean second[]:first)  // first의 길이는 3

{

Arrays.fill(second,false);

}

}


'이것저것 알게된 것' 카테고리의 다른 글

srt 10% 할인쿠폰 받기  (0) 2021.07.02
Java EOF 처리  (0) 2019.08.03
char형 연산  (0) 2019.07.20
비트연산자  (0) 2019.07.20
필드와 변수의 차이,선언위치,초기화  (0) 2019.07.16