자바프로그래밍

컬렉션

제주도소년 2020. 4. 23. 16:40

[ 컬렉션 프레임워크 ]

컬렉션에서의 상위개념 : Collection , Map

[ 특징 ] 

1. 객체만 사용 가능하다. (참조형)
2. 가변길이 (길이가 고정적이지 않음) 추가, 삭제가 가능하다.
3. 순서가 없다(index 가 존재하지 않는다)

 

이와 반면에 배열같은 경우는..

길이가 고정적이다. 따라서 추가나 삭제를 할 수 없다. 하지만 컬렉션을 사용하기 전에 배열을 무조건 1순위로 두고 어떤 일을 처리해야 하며 이것이 불가능한 경우 컬렉션을 사용하도록 해야한다.


[ 컬레션의 선언과 정의 ] 

//1.7 이후 부터 사용 가능
//Collection<String> c = new HashSet<>();
Collection<String> c = new HashSet<String>();

[ 컬렉션의 기능 ] 

//길이확인(size)
System.out.println(c.size());

// 원소추가(add)
c.add("a");
c.add("b");

//원소 삭제(remove)
c.remove("a");

//대표적인 기능
//이 컬렉션 내부에 d 라는 문자열이 존재 하나요?
c.contains("d"); // return true , false

//모든 원소 삭제
c.clear();


//Collection -> Array 변환
/* 
	Object[] arr = c.toArray(); 
	위와같이 할 수도 있지만 Object[] 로 바뀌어버림.. 그러면 형 변환을 하고 사용해야 하는데..
    아래와 같이 하면 형 변환을 안해도 된다.
*/ 

String[] arr = c.toArray(new String[0]);

//데이터를 꺼내는 방법
//Iterator 원소 접근이 가능한 객체를 얻는다
Iterator<Integer> itr = c.iterator();

//이터레이터에 요소가 있을때 까지
while(itr.hasNext()) {
	//이터레이터에 있는 요소를 가져온다.
	int num = itr.next();
	System.out.println(num);
}

//JDK 1.5 이후의 버전에서 사용가능 forEach
for(Integer str : c ) {
	System.out.println(str);
}
Collection<String>main = new ArrayList<String>();

Collection<String> others = new ArrayList<String>();

//others 안에 있는 원소들을 발견했으면 main 에서 다 지워라
main.removeAll(others);

// mian 에서 orders와 일치 하지 않은거 다 지워라
main.retainAll(others);

//main 안에 others 가 다 있습니까??
System.out.println(main.containsAll(others));

//others 안에 잇는 요소들을 main에서 모두 추가
main.addAll(others);

'자바프로그래밍' 카테고리의 다른 글

[JAVA] 로또 프로그램(컬렉션 사용)  (0) 2020.04.26
List  (0) 2020.04.23
Wrapper class  (0) 2020.04.23
[JAVA] ArrayList 를 이용한 성적처리 프로그램  (0) 2020.04.21
[ JDK 1.7 ] Interface (인터페이스)  (0) 2020.04.12