JAVA ArrayList 사용법 & 예제

자바 리스트 클래스에 대해 알아 보겠습니다.

자바 리스트는 배열의 한계로 인해 만들어진 자료형 입니다.

배열을 사용하기 위해서는 크기를 정해야 하는데 프로그래밍 중 크기를 알 수 없는 경우가 더 많습니다.

List는 메모리가 허용하는 한 계속해서 추가할 수 있도록 만든 자료형 클래스 입니다.

Java의 정석:최신 Java 8.0 포함, 도우출판 Java의 정석: 기초편 세트, 도우출판


▼ java.util.List / java.util.Collection

java.util.List는 인터페이스 클래스이며 java.util.Collection 인터페이스를 구현한 것입니다.

List를 사용하기 위해서는 아래 클래스들 중 하나로 인스턴스화 할 수 있습니다.

  1. List list1 = new ArrayList();
  2. List list2 = new LinkedList();
  3. List list3 = new Vector();
  4. List list4 = new Stack();


■ ArrayList add()

배열의 값을 추가하고 인덱스에 해당하는 값을 하나씩 가져오거나 모든 데이터를 꺼내는 방법을 알아보겠습니다.

값을 추가하는 함수는 add(), 값을 조회하는 함수는 get(index) 로 활용할 수 있습니다.


  1. List list1 = new ArrayList();
  2. list1.add("값1");
  3. list1.add("값2");
  4. list1.add(new String("값3"));
  5. list1.add(1, "값1 뒤에 요소값 넣기");


결과는 [값1, 값1 뒤에 요소값 넣기, 값2, 값3] 입니다.

List 배열에 첫번째 인수로 요소 값을 넣은 경우 값이 교체되는 것이 아니라 추가가 되며 데이터들이 하나씩 뒤로 밀리게 됩니다.

생활코딩! HTML + CSS + 자바스크립트 : 처음 프로그래밍을 시작하는 입문자의 눈높이에 맞춘, 위키북스 인사이트] 알고리즘 문제 해결 전략 세트 - 프로그래밍 대회에서 배우는 (전2권), 인사이트


■ ArrayList get()

배열의 값을 조회하고 싶다면 get(index) 함수를 사용하면 됩니다.

하나씩 조회를 하거나 List 클래스의 Iterator() 함수로 Iterator 객체를 리턴받아 사용합니다.


  1. // index를 통한 단일 조회
  2. String str1 = list1.get(0).toString();
  3. String str2 = list1.get(1).toString();
  4. // Iterator 함수를 통한 조회
  5. Iterator iterator = list1.iterator();
  6. while (iterator.hasNext()) {
  7.     String str = (String) iterator.next();
  8. }
  9. // for문을 통한 전체 조회
  10. for(Object obj : listA){
  11.     String str = (String) obj;
  12. }


■ ArrayList remove()

배열에 값을 추가하고 조회를 해봤습니다.

당연히 삭제도 가능하겠죠?

삭제를 하는 방법은 두가지가 있습니다. index 값을 인수로 넘겨서 삭제하거나, 오브젝트 값을 인수로 넘기면 검색 후 배열에서 삭제 됩니다.


  1. list1.remove(0);
  2. list1.remove("값1");


index 값으로 삭제했을 경우 어떤 데이터가 지워졌는지 리턴값으로 확인이 가능하고

오브젝트 값을 인수로 넘길 경우 boolean 타입으로 리턴값을 확인할 수 있습니다.

스프링 부트 프로그래밍 입문, 길벗 자바 프로그래밍 Java Programming:어려운 자바 쉽게 공부하기 자바 최고의 멘토가 전하는 학습 노하우, 혜지원


■ ArrayList contains()

리스트 배열 안에 찾고자 하는 데이터가 있는지 체크하는 함수 입니다.

함수의 인수로 오브젝트 값을 넘기게 되면 boolean 값을 리턴하게 됩니다.


  1. list1.contains("값2");

리턴 결과 값은 true 입니다.


이상, Java의 ArrayList에 대해 알아보았습니다.

* 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^