여러분 자바 : 연산자 보신적 있나요? 안드로이드 for문 조건

여러분 자바 : 연산자 보신적 있나요? 안드로이드 for문 조건

작성일 2010.12.31댓글 1건
    게시물 수정 , 삭제는 로그인 필요

단도직입적으로 소스를 보여드리자면,

 

         for(String key:   keyValuePairs.keySet()){  

             String value = keyValuePairs.get(key);
             savePref(prefs,key,value);
         }

 

 

이런 형태입니다. 여기서 for문 조건안에 : 은 무엇으로 쓰였는지 정말 궁금하네요.

몇일을 고민하다가 여러분의 의견을 듣고 싶어 올립니다.

 

절대 에러는 나지 않고요.



profile_image 익명 작성일 -

: 이것은 확장 for 문에서 사용하는 것으로 JDK 5.0 이상 부터 지원하는 것입니다.

 

반복적이고 불필요한 캐스팅 작업이나 이런 것을 줄이기 위해 나온 것으로 Array, List, Collections 등에서

 

사용이 가능합니다.

 

아래 소스는 확장 for 문을 사용하지 않은 경우와 사용한 경우를 나누어서 짜습니다.  소스를 보시면 이해가

 

가실 것입니다. 어디가 축약되면서 어떤게 사용되었는지를 알수 있을 것입니다. 

 

import java.util.*;

 

public class Ex {


 public static void main(String[] args) {

 

     Map<String, String> keyValuePairs = new HashMap<String, String>();
  
     keyValuePairs.put("kor", "국어");
     keyValuePairs.put("eng", "영어");
     keyValuePairs.put("mat", "수학");
  

     // 확장 for 문을 사용하지 않은 경우
     Set set = keyValuePairs.keySet();
     Iterator itr = set.iterator();
  
     while(itr.hasNext()) {
         String key = (String)itr.next();
         System.out.print(key + " : " + keyValuePairs.get(key) + "  ");
     }
  
     System.out.println("\n----------------------------------");

 


 

     // 확장 for 문을 사용한 경우         
     for (String key: keyValuePairs.keySet()) {
         System.out.print(key + " : " + keyValuePairs.get(key) + "  ");
     }

 

   }

 

}