자료구조 시즌에서는 컬렉션 프레임워크와 인터페이스에 대해 간단히 소개하고 arraylist에 대해 알아보려고 합니다.
컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합입니다.
컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현됩니다.
그리고 자바 컬렉션 프레임워크를 구성하는 주요 인터페이스를 다음과 같이 분류할 수 있습니다.
이 중 이번 시즌에서는 가장 사용 빈도가 높은 Arraylist, linkedlist, stack, queue, hashmap 위주로 알아보려 합니다.
인터페이스 | 설명 | 구현 클래스 |
List<E> | l 순서가 있는 데이터의 집합 l 데이터의 중복을 허용함 |
Vector, ArrayList, LinkedList, Stack, Queue |
Set<E> | l 순서가 없는 데이터의 집합 l 데이터의 중복을 허용하지 않음 |
HashSet, TreeSet |
Map<K, V> | l 키(중복 불가)와 값(중복 가능)이 한 쌍으로 이루어지는 데이터의 집합 l 순서 없음 |
HashMap, TreeMap, Hashtable, Properties |
컬렉션 인터페이스에서 가장 자주 사용되는 메서드로 아래의 표와 같은 것들이 있습니다.
메소드 | 설명 |
boolean add(E e) | 해당 컬렉션(collection)에 전달된 요소를 추가 (선택적 기능) |
void clear() | 해당 컬렉션의 모든 요소를 제거 (선택적 기능) |
boolean contains(Object o) | 해당 컬렉션이 전달된 객체를 포함하고 있는지를 확인 |
boolean equals(Object o) | 해당 컬렉션과 전달된 객체가 같은지를 확인 |
boolean isEmpty() | 해당 컬렉션이 비어있는지를 확인 |
Iterator<E> iterator() | 해당 컬렉션의 반복자(iterator)를 반환 |
boolean remove(Object o) | 해당 컬렉션에서 전달된 객체를 제거 (선택적 기능) |
int size() | 해당 컬렉션의 요소의 총 개수를 반환 |
Object[] toArray() | 해당 컬렉션의 모든 요소를 Object 타입의 배열로 반환 |
이번 시간에는 ArrayList 예제를 살펴본 후, LinkedList와 DoubledList 예제를 포함한, list의 속성에 대해서는 다음 편에서 바로 이어서 알아볼까 합니다.
아래 코드를 함께 보며 진행하겠습니다.
package jaryogujo;
import java.util.*;
public class Arraylist {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> arrList = new ArrayList<Integer>();
// add() 메소드를 이용한 요소의 저장
arrList.add(40);
arrList.add(20);
arrList.add(30);
arrList.add(10);
// for 문과 get() 메소드를 이용한 요소의 출력
for (int i = 0; i < arrList.size(); i++) {
System.out.println(arrList.get(i) + " ");
}
Add() 메서드를 활용하여 하나씩 숫자를 집어넣은 결과, [40,20,30,10] 이라는 배열을 만들었습니다.
그리고 만들어진 배열을 get() 메서드와 반복문을 활용해서 출력했습니다.
그 결과가 아래와 같습니다.
// remove() 메소드를 이용한 요소의 제거
arrList.remove(1);
// Enhanced for 문과 get() 메소드를 이용한 요소의 출력
for (int e : arrList) {
System.out.println(e + " ");
1번지에 저장된 요소 20을 remove() 메서드를 활용하여 지운 후 그 결과값을 출력했습니다.
Arraylist의 한 요소가 사라지면, 그 뒤 번지에 추가되어 있던 요소들은 자동으로 하나씩 당겨집니다.
// Collections.sort() 메소드를 이용한 요소의 정렬
Collections.sort(arrList);
// iterator() 메소드를 이용한 요소의 출력
Iterator<Integer> iter = arrList.iterator();
while (iter.hasNext()) {
System.out.println(iter.next() + " ");
java.util.Collections 에 저장된 기본 메서드인 Collections.Sort() 로 오름차순 정렬을 하면 그 결과는 [10,30,40]이 됩니다. 이 배열을 출력하기 위해 iterator() 라는 컬렉션 프레임워크 고유의 반복 메서드를 사용했습니다.
// set() 메소드를 이용한 요소의 변경
arrList.set(0, 20);
for (int e : arrList) {
System.out.println(e + " ");
이후 0번지의 값 10을 20으로 바꾸기 위해 set() 메서드를 사용했습니다.
// size() 메소드를 이용한 요소의 총 개수
System.out.println("리스트의 크기 : " + arrList.size());
배열에 3개의 요소가 들어있음을 size() 메서드를 활용하여 구할 수 있었습니다.
ArrayList 클래스는 가장 많이 사용되는 컬렉션 프레임워크 중 하나입니다.
내부적으로 배열을 이용하여 요소를 저장합니다.
이에 따른 장단점을 다음과 같이 요약할 수 있습니다.
이번 시간에는 컬렉션 프레임워크와 인터페이스, 그리고 ArrayList에 대해 알아보았습니다.
'study > Java' 카테고리의 다른 글
Doubly-linkedlist에 대해 알아보자 (0) | 2021.08.25 |
---|---|
Linkedlist에 대해 알아보자 (0) | 2021.08.24 |
기본형/참조형 매개변수 (0) | 2021.08.22 |
JVM의 메모리 구조 (0) | 2021.08.21 |
자바 Java 메서드 (3) – 메서드의 호출 (0) | 2021.08.20 |
댓글