본문 바로가기
study/Java

컬렉션 프레임워크: Arraylist

by 고기만두(개발자) 2021. 8. 23. 15:25
728x90
반응형

자료구조 시즌에서는 컬렉션 프레임워크와 인터페이스에 대해 간단히 소개하고 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 예제를 살펴본 후, LinkedListDoubledList 예제를 포함한, 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번지의 값 1020으로 바꾸기 위해 set() 메서드를 사용했습니다.

// size() 메소드를 이용한 요소의 총 개수
		System.out.println("리스트의 크기 : " + arrList.size());

배열에 3개의 요소가 들어있음을 size() 메서드를 활용하여 구할 수 있었습니다.

ArrayList 클래스는 가장 많이 사용되는 컬렉션 프레임워크 중 하나입니다.

내부적으로 배열을 이용하여 요소를 저장합니다.

이에 따른 장단점을 다음과 같이 요약할 수 있습니다.

이번 시간에는 컬렉션 프레임워크와 인터페이스, 그리고 ArrayList에 대해 알아보았습니다.

728x90
반응형

'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

댓글