자료구조를 바타으로 객체들을효율적으로 추가, 삭제, 검색할 수 있도록 관련된 인터페이스와 클래스들을 java.util 패키지에 포함시켜 놓았는데 이것을 “컬렉션 프레임워크” 라고 한다.
주요 인터페이스로는 List(가변길이)(=배열(고정길이)과 비슷), Set, Map 등이 있다.
객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공
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);
}
}
}