List

일요일, 12월 13, 2015

Map / HashMap / Set / Iterator


  • Map 컬렉션
    • Map컬렉션은 Key 와 Value 로 구성된 Entry  객체를 저장하는 구조를 가지고 있다
    • Key  와 Value 는 모두 객체이다
    • Key 는 중복 저장이 불가능 하지만 
    • Value 는 중복 저장 될수 있다
    • 만약 기존에 저장된 키와 동일한 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체된다.
  • 기본적인 선언과 값 입력 방식
    • Map< k , v > name = new HashMap <k , v >();
    • name.put( k , v)
    • 출력 : name.get( k ) = v
    • .keySet() - 모든 키를 Set객체에 담아서 return

1
2
3
4
5
6
7
8
9
//선언부
        Map<StringString> exp1 = new HashMap<String,String>();
//값을 입력 (Key , value )
        exp1.put("name""수영");
        exp1.put("role""키");
 
System.out.println(exp1.get("name")+":"+exp1.get("role"));
        //출력 결과
수영:키
cs


  • while 문을 통한 전체 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
    //KeySet 얻기
        Set<String> keySet= exp1.keySet();
        
        System.out.println(keySet);
        [role, name]    //출력 결과

        Iterator<String> keyIterator = keySet.iterator();
        
        while(keyIterator.hasNext()){

            String key = keyIterator.next();
            String val = exp1.get(key);
            
            System.out.println(key + " - "+val);
        }
cs


  • Set 컬렉션
    • 수학의 집합과 유사 - 순서가 뒤죽박죽이며 중복이 허용되지 않음
    • Iteratro <E> iterator - 저장된 객체를 한번씩 가져오는 반복자
  • Iterator 인터페이스 ( 어떤 데이터 전체를 루핑할때 사용됨,for문과 유사) 
    • Method 들...
    • boolean hasNext() - 가져올 객체가 있으면 true;없으면 false; return;
    • E(객체) next() - 컬렉션에서 하나의 객체를 가지고 온다
    • void remove() - set 컬렉션에서 객체를 하나 가져옴


  • ArrayList 형태로 처리하기
    • Map 객체 하나에 값을 계속 바꿔서 넣어준다고해도
    • 같은 값으로 인식!! (주의!)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//선언부
ArrayList<Map<StringString>> expList =
 new ArrayList<Map<StringString>>();
//이런식으로 새로운 객체를 만들지 않을경우 계속 중복된 값으로 인식해서 
//하나의 객체값만 들어가게됨
Map<StringString> exp1 = new HashMap<String,String>();
Map<StringString> exp2 = new HashMap<String,String>();
Map<StringString> exp3 = new HashMap<String,String>();
//값을 입력 (Key , value )
exp1.put("name""수영");
exp1.put("role""키");
expList.add(exp1);
exp2.put("name""효연");
exp2.put("role""댄스");
expList.add(exp2);
exp3.put("name""윤아");
exp3.put("role""센터");
expList.add(exp3);
cs
    • 출력부
1
2
3
4
5
6
7
8
9
10
11
12
13
    for(Map<String,String> map :expList){
            
            Set<String> keySet02=map.keySet();
            Iterator<String> keyIterator02 = keySet02.iterator();
            
            while(keyIterator02.hasNext()){
                String key02 = keyIterator02.next();
                String val02 = map.get(key02);
                
                System.out.println(key02 + " + "+ val02);
            }
            
        }
cs

    • 결과
1
2
3
4
5
6
role + 키
name + 수영
role + 댄스
name + 효연
role + 센터
name + 윤아
cs







댓글 없음:

댓글 쓰기