프로그래밍/Java

Iterator를 사용 list의 객체 삭제하기

파니동 2021. 11. 2. 21:12

보통 db에서 조회해오는 데이터를 조회하여 자료구조로 집어 넣을 때 LIst<Map> 형태의 자료형을 많이 사용한다.

이때 이미 담아온 데이터들을 가지고 필터링을 하거나 조건에 따라 값을 제거해야할 때 사용한다.

package doit.structure;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class main {
    public static void main(String[] args) {
        ArrayList<Map<String, Object>> list = new ArrayList<>();

        Map<String, Object> map = new HashMap<>();
        map.put("age", "10");
        map.put("name", "kim");
        map.put("job", "programmer");

        Map<String, Object> map1 = new HashMap<>();
        map1.put("age", "16");
        map1.put("name", "lee");
        map1.put("job", "student");

        Map<String, Object> map2 = new HashMap<>();
        map2.put("age", "16");
        map2.put("name", "lee");
        map2.put("job", "student");

        list.add(map);
        list.add(map1);
        list.add(map2);

        System.out.println("before: "+list.toString());

        for(Iterator<Map<String, Object>> it = list.iterator(); it.hasNext();) {
            Map<String, Object> obj = it.next();
            if("kim".equals(obj.get("name"))) {
                it.remove();
            }
        }

        System.out.println("after: "+list.toString());

    }
}
  • Iterator를 사용하여 map의 특정조건이 충족되면 해당 데이터를 삭제한다.