봄봄.devlog

Collection 예제 본문

Programming/Java

Collection 예제

jihyun03 2020. 8. 14. 15:14

예제1

import java.util.ArrayList;
import java.util.Collection;

public class Exmple 01 {
	public static void main(String[] args) {
    	Collection<String> c = new ArrayList<String>();
        
        c.add("one"); 
        c.add("two");
        c.add("three");
        for(String s : c) {
        	System.out.println("%s", s);
        }
	}
}
Collection<String> c = new ArrayList<String>();

 

ArrayList 클래스는 Collection 인터페이스를 구현(implements)하였다. 

따라서 Collection 인터페이스가 ArrayList 클래스의 부모 타입이다.

자식 타입의 객체에 대한 참조를 부모 타입의 변수에 대입하는 것은 OK이다.

 

"다형성 호출"

 

c.add("one");
c.add("two");
c.add("three");

부모 타입의 변수로 메소드를 호출해야 다형성 호출이다.

 

예제2

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;

public class Example02 {
    
    static void addData(Collection<String> c) {        
        c.add("one");
        c.add("two");
        c.add("three");
    }
    
    static void printCollection(Collection<String> c) {
        for (String s : c)
            System.out.printf("%s ", s);
        System.out.println();
    }
    
    public static void main(String[] args) {
        Collection<String> c1 = new LinkedList<String>();
        Collection<String> c2 = new ArrayList<String>();
        
        addData(c1);
        addData(c2);
        printCollection(c1);
        printCollection(c2);
    }
}

 

static void addData(Collection<String> c) {
	c.add("one");
    c.add("two");
    c.add("three");
}

addData 메소드가 처음 호출될 때 파라미터 c는 LinkedList<String> 타입의 객체이고, 그 다음 호출 될 때 파라미터 c는 ArrayList<String> 타입의 객체이다.  add 메소드 호출은 다형성 호출이다. 

 

예제3

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;

public class Example06 {
    
    static void printCollection(Collection<String> c) {
        String[] a = c.toArray(new String[0]);
        System.out.println(Arrays.toString(a));
    }
    
    public static void main(String[] args) {
        Collection<String> c1 = new LinkedList<String>();
        Collection<String> c2 = new ArrayList<String>();
        
        c1.add("one");
        c1.add("two");
        
        c2.addAll(c1);
        c2.add("three");
        c2.add("four");
        
        printCollection(c1);
        printCollection(c2);
        
        c2.retainAll(c1);
        printCollection(c2);
    }
}

 

실행결과

[one, two]
[one, two, three, four]
[one, two] 

 

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

String 문자열 비교(==연산자와 equals 메소드)  (0) 2020.08.28
우선순위 큐(PriorityQueue)  (0) 2020.08.21
Java Collection Framework (JCF)  (0) 2020.08.14
[0701] 아스키 코드  (0) 2020.07.01
[0701] Java 배열 정렬 기능  (0) 2020.07.01
Comments