컬렉션 프레임워크

자료구조를 바타으로 객체들을효율적으로 추가, 삭제, 검색할 수 있도록 관련된 인터페이스와 클래스들을 java.util 패키지에 포함시켜 놓았는데 이것을 “컬렉션 프레임워크” 라고 한다.

주요 인터페이스로는 List(가변길이)(=배열(고정길이)과 비슷), Set, Map 등이 있다.

List 컬렉션

객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공

ArrayList

List 컬렉션에서 가장 많이 쓰이고 일반 배열과의 차이점은 제한 없이 객체를 추가할 수 있다

객체 자체를 저장하는 것이 아니라 객체의 번지를 저장한다, 동일 객체를 중복 저장도 가능

예시)

package fwfr;

import java.util.ArrayList;
import java.util.List;

public class Board {
    private String subject;
    private String content;
    private String writer;

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public Board(String subject, String content, String writer){
        this.subject=subject;
        this.content=content;
        this.writer=writer;
    }

    public static void main(String[] args) throws Exception {

        List<Board> list = new ArrayList<>();

        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"));

        int size = list.size();
        System.out.println("총 객체 수 : " + size);
        System.out.println();

        Board board = list.get(2);
        System.out.println(board.getSubject()+"\\t"+board.getContent()+"\\t"+board.getWriter());
        System.out.println();

        for(int i = 0 ; i <list.size(); i++){
            Board b = list.get(i);
            System.out.println(b.getSubject()+"\\t"+b.getContent()+"\\t"+b.getWriter());
        }
        System.out.println();

        list.remove(2);
        list.remove(2);

        for(Board b : list){
            System.out.println(b.getSubject()+"\\t"+b.getContent()+"\\t"+b.getWriter());

        }
    }
}

예시1) 입력되있는 스트링 출력

import java.util.ArrayList;

public class test {

	public static void main(String[] args) {

		//List Interface => <>
		ArrayList<String> a = new ArrayList<String>();
		a.add(new String("A")); // 두가지 방법으로 작성 가능
		a.add("B"); // 리스트에 삽입
		a.add("C");
		a.add("C");
	
		for(int i=0;i<a.size();i++) { //int size 저장되어있는 객체수 리턴
			System.out.println(a.get(i)); //E get인덱스에 저장된 객체 리턴
		}
	
	}
}

예시2) 아이디와 나이 출력

import java.util.ArrayList;

class Profile{
	String id;
	int age;
	Profile(String i, int a){
		id=i; age=a;
	}
}

public class test {

	public static void main(String[] args) {

	
		ArrayList<Profile> a = new ArrayList<Profile>();
		
		//arraylist에다 값 3개 삽입 - > 임의의 값으로 설정
		a.add(new Profile("a",10));
		a.add(new Profile("b",20));
		a.add(new Profile("c",30));
		
		for(int i=0;i<a.size();i++) {
			Profile p=a.get(i);
			System.out.println(p.id+" "+p.age);
		}
	}
}