package collection_fram;
public class Board {
String subject;
String content;
String writer;
public Board(String subject , String content, String writer) {
this.subject = subject;
this.content = content;
this.writer = writer;
}
}
package collection_fram;
import java.util.*;
public class ArrayList_example {
public static void main(String[] args) {
// List 인터페이스의 클래스
// 객체 삽입하거나 제거되었을 때 하나씩 밀려나는 특징 LinkedList에 비해 안 좋음
// 채우는 순서는 정해져있음 0 부터 ~ 차근차근
// 제거하거나 추가하는 경우 인덱스가 하나씩 밀린다
// 그냥 배열하고 다른 점은 크기가 동적으로
List<String> list = new ArrayList<String>(); // (40) 숫자 지정가능
// List list = new ArrayList(); 일 경우 객체를 다 받지만 형변환 속도문제가 생김
list.add("홍길동"); //맨 끝에 객체 추가
list.add(1,"신용권2"); // 지정 인덱스에 삽입
list.add(1,"신용권"); // 지정 인덱스에 삽입
String str = list.get(1); // 인덱스 1값 반환
System.out.println(str); // 신용권
list.size(); // 객체 수
list.remove(0); // 인덱스로 삭제
list.remove("신용권"); // 객체명으로 삭제
List<Board> list2 = new ArrayList<Board>();
list2.add(new Board("제목1","내용1","글쓴이1"));
list2.add(1,new Board("제목2","내용2","글쓴이2"));
list2.add(new Board("제목3","내용3","글쓴이3"));
list2.size(); // 1
list2.remove(1);
Board board = list2.get(1); // collection_fram.Board@26f0a63f
System.out.println(board.subject); // 제목3
System.out.println(board.content); // 내용3
System.out.println(board.writer); // 글쓴이3
Scanner Scanf = new Scanner (System.in);
for (int i = 0 ; i < 3; i++) {
String title = Scanf.nextLine();
String inner = Scanf.nextLine();
String author =Scanf.nextLine();
Board temp = new Board(title,inner,author);
list2.add(temp);
}
}
}
컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스 집합입니다.
즉, 데이터를 저장하는 자료구조와 데이터 처리하는 알고리즘을 구현해 놓은 것입니다.
오늘은 그중 ArrayList에 대해서 알아보려고 합니다.
List 인터페이스에서 상속 받는 걸로 삽입되거나 삭제 될 때 하나씩 밀려나가는 특징이 있습니다.
채우는 순서가 정해져있습니다. (0번 인덱스 ~ ...)
배열과 아주 유사한데 다른 점은 크기를 동적으로 지정할 수 있습니다.
삽입과 삭제가 빈번한 데이터인 경우에는 부적합 합니다.
List<배열 자료형> list객체명 = new ArrayList<배열 자료형> (크기);
List<String> list = new ArrayList<String>(); 로 처음에 선언이 가능합니다. (동적으로 크기 변화)
List<String> list = new ArrayList<String>(40);처럼 크기를 정해줄 수 있습니다.
list. add("내용"); 으로 추가 시킬 수 있습니다. 또한
list.add(인덱스,"내용")으로 해당 인덱스에 추가시킬 수 있습니다.
list.get(인덱스)로 해당 인덱스의 값을 반환 받을 수 있습니다.
list.size()로 해당 ArrayList의 사이즈를 알 수 있습니다.
list.remove(인덱스)로 해당 인덱스 값을 삭제 할 수 있습니다.
또한 Board라는 클래스를 이용한 객체를 자료형에 선언도 가능합니다.
이럴경우 get으로 접근 할때 board.subject로 접근하던가 아니면 값을 return해주는 getter있으면 됩니다.
값을 입력받아 넣을 때는 각각에 해당되는 생성자의 매개변수를 미리 입력받아 넣고 그걸 생성자로 선언해
add를 통해 차곡차곡 쌓으면 됩니다.
'[Java] > [Java]' 카테고리의 다른 글
[Java] 자바 컬렉션프레임워크 LinkedList (0) | 2021.07.06 |
---|---|
[Java] 자바 컬렉션프레임워크 Vector (0) | 2021.07.06 |
[Java] 자바 날짜 메소드 (0) | 2021.07.03 |
[Java] 자바 Math 메소드 (0) | 2021.07.03 |
[Java] 자바 토큰(Token) (0) | 2021.07.03 |