Java - ArrayList

컴퓨터/Java

728x90
반응형

ArrayList 

Java에서 기본적으로 제공하는 컬렉션 프레임 워크 중 ArrayList에 대하여 알아보고 사용해보도록 합시다.

ArrayList는 List 인터페이스를 상속받아 클래스의 형태로 구현되어 있어 바로 인스턴스화 시켜 사용할 수 있습니다.

 

arraylist는 배열형태로 구현한 리스트 자료형이라고 생각하시면 보다 쉽습니다. 

이전 글들을 한번 참조해주세요

 

 

Java - 컬렉션프레임워크(CKP)

Collection framework Java의 기본적인 문법에 익숙해진다면 그다음 마주하게 될 녀석이 바로 이 컬렉션 프레임워크입니다. 말은 엄청나게 거창하지만 기본적으로 Java에서 자주 사용하는 자료구조와

blog-of-gon.tistory.com

 

 

자료구조 - List(리스트)와 종류

List 개념 이해하기 자료구조 중 하나인 List는 배열의 한계를 극복할 수 있는 강력한 자료구조 중 하나이며 데이터를 단순하지만 효율적으로 다룰 수 있는 자료구조입니다. List는 Array처럼 어떠한

blog-of-gon.tistory.com

 

선언과 생성

arraylist를 사용하기 위해서는 우선 인스턴스화 된 객체화를 시켜야 합니다.

이클립스와 같은 IDE 툴을 사용한다면 자연스럽게 사용하는 라이브러리가 import 됩니다. ArrayList의 경우 java.util을 import 하여 사용할 수 있습니다.

 

전체적인 선언의 소스코드를 보면 아래와 같습니다.

import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
	}
}

기본적으로 ArrayList의 경우 제너릭의 개념이 적용되어 있으므로 ArrayList에 담을 타입을 제너릭을 통해 명시해 주는 것이 좋습니다. 

값 추가하기 - .add()

선언된 ArrayList에 . add 메서드를 통하여 값을 추가할 수 있습니다. 크게 2가지 방법이 있습니다.

  • 가장 뒤에 추가하기 

.add 메서드에 하나의 인자만 들어간다면 가장 뒤의 자리에 값이 추가됩니다.

import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
	}
}
  • 인덱스를 통해 추가하기

첫 번째 인자로 인덱스를 지정하여 원하는 인덱스 위치에 값을 삽입할 수 있습니다.


import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
		list.add(0,50);
		System.out.println(list);
	}
}

  • 제너릭으로 명시된 타입만 삽입 가능

Integer 타입만을 명시했기 때문에 int밖에 삽입이 안됩니다. 

null의 경우 빈 공간을 표시하기 위해 가능합니다.

		// list.add("hi"); error!
		list.add(null); // 빈 공간의 삽입

값 지우기. romove() /. clear()

  • . remove(인덱스)를 통해 특정 인덱스의 값을 제거할 수 있습니다.
import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
		list.add(0,50);
		// list.add("hi");
		list.add(null);
		list.remove(1);
		System.out.println(list);
	}
}

  • . clear()를 사용하면 모든 arraylist의 값이 제거됩니다.
import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
		list.add(0,50);
		// list.add("hi");
		list.add(null);
		list.remove(1);
		list.clear();
		System.out.println(list);
	}
}

ArrayList의 크기 구하기 -. size()

어떠한 ArrayList의 인덱스 참조를 하고 싶은데 크기를 모를 경우 아래처럼 사용합니다.

인덱스는 0부터 시작하고 size는 1부터 시작함으로 주의!

import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
		list.add(0,50);
		// list.add("hi");
		list.add(null);
		int size;
		size = list.size();
		System.out.println(size);
		System.out.println(list);
	}
}

ArrayList의 탐색 -. indexof() /. contains()

 

  • 값이 있는 index 찾기 indexof()

해당 메서드의 경우 값이 있는 index를 반환해 줍니다 만약 존재하지 않는다면 -1을 반환합니다.

또한 중복되는 값이 있다면 가장 먼저 찾은 인덱스를 반환해 줍니다.

import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
		list.add(0,50);
		list.add(1);
		list.add(null);
		System.out.println(list.indexOf(1));
		System.out.println(list.indexOf(100));
		System.out.println(list);
	}
}

  • 값의 존재 여부를 확인하기 contains()

이 메서드를 이용하면 list안에 값이 있는지 없는지를 true 또는 false로 반환해 줍니다.

import java.util.ArrayList;
public class Test {
	public static void main(String[] args) {
		ArrayList<Integer> list = new ArrayList<Integer>();
		//ArrayList list2 = new ArrayList();
		list.add(1);
		list.add(5);
		list.add(0,50);
		list.add(1);
		list.add(null);
		System.out.println(list.contains(1));
		System.out.println(list.contains(100));
		System.out.println(list);
	}
}

728x90
반응형

'컴퓨터 > Java' 카테고리의 다른 글

Java - 예외(Exception)란?  (0) 2021.12.16
Java - HashMap  (0) 2021.10.29
Java - import  (0) 2021.10.08
Java - 제네릭(Generic)  (0) 2021.10.06
Java - 컬렉션프레임워크(CKP)  (0) 2021.10.05

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :