JAVA

[JAVA] 콜렉션-Collection

HJLIM 2020. 9. 22. 16:34

자바에서 collection은 객체를 담을 수 있는 기억장소로서 여러가지 자료를 적절한 형태로 처리하고

저장하는 저장형태(묶음)의 자료구조를 말한다.

 

<콜렉션과 배열의 차이점>

 

-리사이즈가 가능하다.

  :기본 사이즈를 10이라고 했을 때 공간이 초과하면 공간이 n개 씩 증가하고 늘어나는 n의 개수를 직접 지정가능함.  

 

-객체 중복이 허용된다.(배열과 마찬가지로 인덱스 개념을 사용함)

 

-배열 공간이 삭제되면 배열은 null이 되지만 콜렉션은 삭제된 공간만큼 당겨진다.(하지만 배열보다 속도가 느리다.)

 

 

<종류>

1.Vector

Vector vc = new Vector(); 
		//add-객체 저장
		vc.add("홍길동1"); 
		vc.add("홍길동2");
		vc.add("홍길동3");

		//get-객체 추출 (강제 형 변환)
		String str1 = (String)vc.get(0);  //vc.get(index); 
		String str2 = (String)vc.get(1);
		String str3 = (String)vc.get(2);
		
		//출력
		System.out.println(str1);
		System.out.println(str2);
		System.out.println(str3);
        
        //검색의 용도 - 몇 번째 인덱스에 있는지 확인
		int index = vc.indexOf(name);
		
		//name이라는 객체가 존재하는지 
		if(vc.contains(name)) {
			System.out.println("검색결과 있음 : " + vc.get(index)); //member.getName
			//회원 정보 삭제 - 리스트에 name이 존재하면 삭제
			if(vc.remove(name)) {
				System.out.println("삭제 완료!");
			}
		}
		//검색 결과를 오브젝트로 끌어내서 String으로 형 변환 후 출력
		System.out.println("<출력 결과 표현1>");
		for(int i=0; i<vc.size(); i++) {
			Object obj = vc.get(i);
			String str = (String)obj;
			System.out.println(str);
		}

add메소드로 객체를 저장하고 get메소드를 통해 저장한 객체를 추출한다. 객체로 저장된 홍길동1,2,3 들을 강제 형 변환을 해서 추출하여 출력하였다.

 

그 다음 remove메소드를 통해 저장한 객체를 삭제하였다.

콜렉션은 배열과 다르게 null이 되지 않고 삭제한 공간을 바로 뒤

에 있는 객체가 당겨진다.  

 

 

 

 

 

 

 

 

2. list

public class VectorEx2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List list = new Vector();
		//객체 넣기(회원 가입)
		list.add(new Board("제목1: ", "내용1", "글쓴이1"));
		list.add(new Board("제목2: ", "내용2", "글쓴이2"));
		list.add(new Board("제목3: ", "내용3", "글쓴이3"));
		list.add(new Board("제목4: ", "내용4", "글쓴이4"));
		list.add(new Board("제목5: ", "내용5", "글쓴이5"));
		
		//회원 탈퇴
		list.remove(2);
		list.remove(3);
		for(int i=0; i<list.size();i++) {
			Object obj = list.get(i);
			Board board = (Board)obj;
			System.out.println(board.subject + "\t" + board.content + "\t" + board.writer);	
		}
	}
}

list형태도 마찬가지로 add로 객체를 저장하고 

remove를 통해 삭제할 수 있다.

list형태를 이용해 회원 가입 시스템의 회원 가입과 회원 탈퇴 기능 구현이 가능하다.