컨테이너

진성대·2023년 3월 20일
0

자료구조

목록 보기
16/18

기본 개념들

자바 컨테이너 라이브러리는 다음과 같은 두 개의 서로 다른 개념으로 나뉜다.

import java.util.*;

public class HelloWorld{
    static Collection fill(Collection<String> collection){
        collection.add("dog");
        collection.add("rat");
        collection.add("cat");
        collection.add("dog");
        return collection;
    }
    
    static Map fill(Map<String, String> map){
        map.put("rat", "Fuzzy");
        map.put("cat", "Rags");
        map.put("dog", "Bosco");
        map.put("dog", "Spot");
        return map;
    }
    
    public static void main(String []args){
       System.out.println("ArrayList : \t" + fill(new ArrayList<String>()));
       System.out.println("LinkedList : \t" + fill(new LinkedList<String>()));
       System.out.println("HashSet : \t" + fill(new HashSet<String>()));
       System.out.println("TreeSet : \t" + fill(new TreeSet<String>()));
       System.out.println("LinkedHashSet : " + fill(new LinkedHashSet<String>()));
       System.out.println("HashMap : \t" + fill(new HashMap<String, String>()));
       System.out.println("TreeMap : \t" + fill(new TreeMap<String, String>()));
       System.out.println("LinkedHashMap : " + fill(new LinkedHashMap<String, String>()));
    }
}
💡 ## 출력결과 ArrayList : [dog, rat, cat, dog] LinkedList : [dog, rat, cat, dog] HashSet : [dog, cat, rat] TreeSet : [cat, dog, rat] LinkedHashSet : [dog, rat, cat] HashMap : {dog=Spot, cat=Rags, rat=Fuzzy} TreeMap : {cat=Rags, dog=Spot, rat=Fuzzy} LinkedHashMap : {rat=Fuzzy, cat=Rags, dog=Spot

ArrayList, LinkedList : 중복된 요소가 있으며 요소를 추가한 순서대로 출력된다.

HashSet : 중복이 허용되지 않았고, 순서가 보장되지 않았다.

TreeSet : 중복이 허용되지 않았고, 요소들이 오름차순으로 정렬되어 출력되었다.

HashMap : 키(key)와 값(value)가 '=' 로 묶여서 출력되었다. 순서를 보장하지 않는다.

TreeMap : HashMap과 같은 형식으로출력되며, key들이 정렬되어 출력된다.

LinkedHashMap : HashMap과 같은형식으로 출력되며, 추가된 순서를 보장한다.

💡 참고로 우리가 컨테이너를 쓰는 가장 큰 이유중 하나는 **'크기를 지정할 필요가 없다'**  라는 것이다. 이들 컨테이너는, 요소가 추가될 때마다 크기를 **동적으로 증가** 시킨다.
profile
신입 개발자

0개의 댓글