안드로이드 개발 질문/답변
(글 수 358)
int tiles[] = getUsedTiles(x,y);
for(int tile : tiles) <------
자바를 공부한지 얼마안됬는데.. 예제에 보니깐 for문 조건이 저런식으로 되어있더라구요.
기본적인 조건이랑 다른데 책에는 안나와 있고.. 지식인을 찾아볼려하니 어떤식으로 검색해야할지 몰라서
질문 올립니다.
무엇을 뜻하는 조건인가요?
2012.06.11 22:52:38
enhanced for loop 이라고 합니다.
근데 enhanced for loop이 가장 빠르지 않나요?
http://developer.android.com/guide/practices/design/performance.html
의 "Use Enhanced For Loop Syntax" 부분을 참고하세요.
아래의 형식과 동일합니다.
많은 것이 생략되죠? 저걸 뭐라고 부르더라...
여튼 장단점이 있습니다.
장점은 많은 코드가 생략이 된다는것이고요
단점은 for 문이 돌때마다 int 형 변수를 새로 생성하기 때문에 메모리 할당이 늘어납니다.
특히 클래스 규모가 커질수록 더욱 더 심각해지죠.
또 특정 조건에서의 index 를 찾기가 어렵죠.
뭐 여러가지 이유가 있지만 전 가급적 저런 형태로의 선언은 피합니다.
과거 메모리가 512MB 이하 기기가 난무하던 시절 구글에서는 저런식으로 했을 때 메모리 부족으로 니 앱이 뻣어도 난 책임 못진다~ 라고 했지요.
초창기 구글의 안드로이드 Doc 를 잘 뒤져보면 메모리 최적화에 관련된 깨알같은 팁들이 좀 많이 있지요 :)