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형태를 이용해 회원 가입 시스템의 회원 가입과 회원 탈퇴 기능 구현이 가능하다.