본문 바로가기
교육/Java

JAVA 개발자 수업 20일차

by yhyuk 2021. 4. 23.
728x90
반응형

 

컬렉션 프레임워크(Collections Framework)

List 인터페이스

ArrayList


컬렉션 프레임워크(Collections Framework)

[정의]

- 컬렉션(Collection) : 다수의 데이터, 즉 데이터 그룹

- 프레임워크(Framework)  표준화된 프로그래밍 방식

- 컬렉션(Collection) + 프레임워크(Framework) : 데이터를 저장하는 클래스들을 표준화한 설계

 

List 인터페이스

[특징] 

- 중복을 허용하면서, 저장순서가 유지되는 컬렉션을 구현하는데 사용한다.

 

[구현 클래스]

- ArrayList, LinkedList, Stack, Vector 등...

 

ArrayList

[특징]

1. 컬렉션 프레임워크에서 가장 많이 사용되는 컬렉션 클래스이다.

2. List인터페이스를 구현하기 때문에, 데이터의 저장순서가 유지되며 중복을 허용한다..

3. 데이터를 순차적으로 저장되며, 더이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다.

 

[메서드]

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

/* 
 * 1. 요소 추가하기
 * - 지정된 위치(index)에 객체(element) 또는 컬렉션에 포함된 객체들을 추가한다.
 * - 배열의 맨마지막에 추가한다.(append)
 * - boolean add(T Value)
 */
list.add("빨강");
list.add("주황");
list.add("노랑");

/* 
 * 2. 요소 접근
 * - 지정된 위치(index)에 있는 객체를 반환한다.
 * - T get(int index)
 */
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));

/* 
 * 3. 요소 검색(찾기)
 * - 지정된 객체의 위치(index)를 반환한다.
 * - boolean contains(T Value) : true, false
 * - int indexOf(T Value) : 몇번째? (방향 : -> )
 * - int lastIndexOf(T Value) : 몇번째? (방향 : <- )
 */
System.out.println(list.contains("빨강"));
System.out.println(list.indexOf("노랑")); 
System.out.println(list.lastIndexOf("노랑"));

/* 
 * 4. 요소 삭제
 * - 지정된 위치(index)에 있는 객체를 삭제하고 삭제된 객체를 반환한다.
 * - Object remove(int index)
 */
 list.remove(1);
 list.remove(2);
 
/* 
 * 5. 요소 수정
 * - 지정된 위치(index)에 객체를 저장한다.
 * - Object set(int index, Object element)
 */
 list.set(1, "검정색");
 list.set(2, "파란색");
 
/* 
 * 6. 요소 갯수
 * - int size()
 */
 list.size();
 
 

 

[Array와 ArrayList의 차이점]

- Array : 배열의 길이가 불변이다.

- ArrayList : 배열의 길이가 가변이다.


MEMO>

 

# 주말동안 ArrayList 직접 코드 구현하자

 

# 원하는 키워드에 커서를 두고 단축키 F3 누르면 해당 메소드로 이동한다.

 

# ArrayList에서 삽입, 삭제할때 좌측시프트, 우측시프트가 잘 이해가 안되는데 공부합시다.

 

 

728x90
반응형

'교육 > Java' 카테고리의 다른 글

JAVA 개발자 수업 22일차 - 스택(Stack)과 큐(Queue)  (0) 2021.04.27
JAVA 개발자 수업 21일차  (0) 2021.04.26
JAVA 개발자 수업 19일차  (0) 2021.04.22
JAVA 개발자 수업 18일차  (0) 2021.04.21
JAVA 개발자 수업 17일차  (0) 2021.04.20

댓글