Programming language/Java

[JAVA] Set, List, Map

chaenii 2022. 9. 16. 14:11

Set

set은 중복이 없고, 순서도 없는 자료구조. Hashset과 TreeSet이 있다.

    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;

    public class SetExam {
        public static void main(String[] args) {
            Set<String> set1 = new HashSet<>();

            boolean flag1 = set1.add("kim");
            boolean flag2 = set1.add("lee");
            boolean flag3 = set1.add("kim");

            System.out.println(set1.size());   //저장된 크기를 출력합니다. 3개를 저장하였지만, 이미 같은 값이 있었기 때문에 2개가 출력
            System.out.println(flag1);  //true
            System.out.println(flag2);  //true
            System.out.println(flag3);  //false

            Iterator<String> iter = set1.iterator();

            while (iter.hasNext()) {   // 꺼낼 것이 있다면 true 리턴.          
                String str = iter.next(); // next()메소드는 하나를 꺼낸다. 하나를 꺼내면 자동으로 다음것을 참조한다.
                System.out.println(str);
            }
        }
    }

List

List는 배열과 비슷하다. 둘의 가장 큰 차이점은 배열은 한번 생성하면 크기 변경이 불가하지만, 리스트는 저장공간이 필요에 따라 자동으로 늘어날 수 있다는 것이다.

List는 데이터의 중복이 있을 수 있고, 순서도 있다.

  import java.util.ArrayList;
    import java.util.List;

    public class ListExam {

        public static void main(String[] args) {
            List<String> list = new ArrayList<>();

            // list에 3개의 문자열을 저장합니다.
            list.add("kim");
            list.add("lee");
            list.add("kim");

            System.out.println(list.size()); //list에 저장된 자료의 수를 출력 (중복을 허용하므로 3 출력) 
            for(int i = 0; i < list.size(); i++){
                String str = list.get(i);
                System.out.println(str);
            }
        }   
    }

Map

Map은 key와 value를 쌍으로 저장하는 자료구조 키는 중복될 수 없고, 값은 중복될 수 있다.

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;   
    public class MapExam {  
        public static void main(String[] args) {
            // Key, Value가 모두 String 타입인 HashMap인스턴스를 만듭니다.
            Map<String, String> map = new HashMap<>();

            // key와 value값을 put으로 저장합니다.
            map.put("001", "kim");
            map.put("002", "lee");
            map.put("003", "choi");
            // 같은 key가 2개 있을 수 없습니다. 첫번째로 저장했던 001, kim은 001, kang으로 바뀐다.
            map.put("001", "kang");

            // map에 저장된 자료의 수를 추력합니다. 3이 출력됩니다.
            System.out.println(map.size());

            // 키가 001, 002, 003인 값을 꺼내 출력합니다.
            System.out.println(map.get("001"));
            System.out.println(map.get("002"));
            System.out.println(map.get("003"));

            // map에 저장된 모든 key들을 Set자료구조로 꺼냅니다.
            Set<String> keys = map.keySet();
            // Set자료구조에 있는 모든 key를 꺼내기 위하여 Iterator를 구합니다.
            Iterator<String> iter = keys.iterator();
            while (iter.hasNext()) {
                // key를 꺼냅니다.
                String key = iter.next();
                // key에 해당하는 value를 꺼냅니다.
                String value = map.get(key);
                // key와 value를 출력합니다.
                System.out.println(key + " : " + value);
            }
        }
    }
 

https://school.programmers.co.kr/learn/courses/9

 

자바 중급

평가 5.0 22개의 평가 ★★★★★22 ★★★★0 ★★★0 ★★0 ★0 Hoon 2022.09.13 12:59 황현준 2022.07.30 19:05 김보성 2022.03.27 11:12 YongHoonLee 2022.02.06 21:44 손창우 2022.01.19 23:25 리뷰 더보기

school.programmers.co.kr

 

반응형

'Programming language > Java' 카테고리의 다른 글

Collection  (0) 2024.03.17
[JAVA] 어노테이션(Annotation)  (0) 2022.09.16
[JAVA] Collection Framework  (0) 2022.09.16
[JAVA] java.lang 패키지/오토박싱  (0) 2022.09.14
[JAVA] Object와 오버라이딩  (0) 2022.09.14