봄봄.devlog
Collection 예제 본문
예제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