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과 같은형식으로 출력되며, 추가된 순서를 보장한다.
💡 참고로 우리가 컨테이너를 쓰는 가장 큰 이유중 하나는 **'크기를 지정할 필요가 없다'** 라는 것이다. 이들 컨테이너는, 요소가 추가될 때마다 크기를 **동적으로 증가** 시킨다.