Java 프로그래밍 초급(5) - 컬렉션 프레임워크 : List
728x90

안녕하세요~ 항상 나아가는 개발자 pink_salt 입니다!

코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다.

Java의 정말 중요한 개념인 컬렉션 프레임워크 : List 에 대해서 알아봅시다~ 고고!

이번엔 'Java 프로그래밍 초급' 강의를 듣고 공부한 내용을 정리하여 다섯 번째 포스팅을 진행하겠습니다.


List 자료구조 컬렉션 클래스에 대한 이해

앞 게시물에서 언급했던 주식 데이터 기억나시나요?

List 자료 구조 데이터는

  • 저장되는 데이터에 순서가 존재합니다.
  • 중복되는 데이터가 저장될 수 있습니다.

 

List 자료 구조를 위해 정의된 인터페이스

  • 여러 건의 데이터의 하나의 객체로 관리합니다.
  • 입력된 데이터에 순서가 존재합니다.
    • 순서 정보의 관리를 위해 인덱스 개념 존재합니다.
    • Collection<E> 인터페이스에 추가로 인덱스를 이용해 데이터를 다루는 메서드가 정의됩니다.
  • 입력된 데이터들의 중복을 허용합니다.

 

List<E> 인터페이스에 대한 이해

  • Collection<E> 인터페이스를 상속하여 정의된 인터페이스입니다.

  • Collection<E> 인터페이스에서 정의된 메서드에 List 자료구조에 필요한 메서드가 추가로 정의됩니다.

List는 index를 갖고 있기 때문에 index를 활용한 빨간색 메소드들을 확인할 수 있습니다.

 

대표적인 List 자료구조의 컬렉션 클래스

ArrayList<E>가 가장 많이 사용되는 클래스입니다.

ArrayList<E> 클래스에 대한 이해

▶ Array와 가장 유사한 컬렉션 클래스입니다.
Array처럼 객체 내부 데이터에 접근하기 위한 인덱스가 존재합니다.
Array와 다르게 생성된 객체에서 데이터의 추가와 삭제가 자유롭게 가능합니다.
Java.util 패키지에 존재합니다.


List 자료구조 컬렉션 클래스의 활용

 

ArrayList<E> 객체 생성

 문법

import java.util.ArrayList;

ArrayList<Type-Class> arrayList-name = new ArrayList<>();
  • import java.util.ArrayList; : ArrayList 클래스를 사용하기 위해 컴파일러에 해당 Class가 존재하는 패키지 정보 제공합니다.
  • ArrayList : 생성하고자 하는 객체가 ArrayList클래스임을 지정합니다.
  • <Type-Class> : 제네릭을 이용해 ArrayList 객체 내에서 사용할 데이터 타입을 지정합니다.
    • 데이터 타입의 Class 이름을 사용합니다.
  • arrayList-name : 생성하고자 하는 ArrayList 객체의 변수명을 지저합니다.

 

ArrayList<E> 객체 생성

  • ArrayList 객체 생성


  • ArrayList<E> 객체의 데이터 추가

▷ boolean add(E e)

객체 생성 시 정의한 데이터 타입(<E>)을 인자로 전달하여 마지막 위치에 추가합니다.

추가한 순서대로 ArrayList 객체에 추가됩니다.

추가되는 결과를 boolean으로 알려줍니다.

Class 객체를 데이터로 추가 가능합니다.

▷ void add(int index, E e)

객체 생성시 정의한 데이터의 타입(<E>)과 추가하고자 하는 위치의 인덱스 정보를 인자로 전달하여 해당 위치에 데이터를 추가합니다.

추가하고자하는 데이터의 위치를 index로 넣어서 추가할 수 있습니다.

▷ boolean addAll(Collection<? extends E> C)

인자로 전달한 Collection 객체의 데이터들을 모두 추가합니다.

ArrayList 객체 생성시 정의한 데이터 타입(<E>)을 원소로 가지는 Collection 객체여야 합니다.

ArrayList에다가 리스트의 상위 클래스인 Collection을 상속받은 모든 자료구조를 인자로 넣어서 추가할 수 있습니다. 수행결과를 boolean으로 알려줍니다.

▷ void addAll(int index, Collection<? extends E> C)

원하는 위치에 인자로 전달받은 Collection 객체의 데이터들을 추가합니다.

위의 것에서 차이점은 원하는 index에 넣을 수 있다는 것입니다.

위의 예시에서 index를 0으로 지정하였기에 0번째 인덱스에 객체가 추가되게 됩니다.


  • ArrayList<E> 객체의 데이터 탐색

E get(int index)

전달받은 index 위치에 저장되어 있는 데이터를 선택하여 반환합니다.

▷ int indexOf(Object o)

전달받은 데이터가 저장되어 있는 인덱스 정보를 반환합니다.

데이터가 존재하지 않을 경우에는 -1을 반환합니다.

▷ boolean contains(Object o)

전달받은 데이터의 객체 포함여부를 확인하여  boolean 타입으로 결과를 반환합니다.

▷ int size()

 객체에 저장되어 있는 데이터의 개수를 조회합니다.


  • ArrayList<E> 객체의 데이터 변경

▷ void clear()

객체 내 모든 데이터를 제거합니다.

▷ E remove(int index)

전달 받은 인덱스 위치의 데이터를 제거하고 해당 데이터를 반환합니다.

removed 변수에는 remove(index)를 통해서 삭제된 데이터의 리턴 값이 저장되게 됩니다.

그래서 출력하면 Web Service가 나오게 되고

watchHistory ArrayList를 출력하게 되면 Web Service가 사라진 리스트가 출력되게 됩니다.

▷ boolean remove(Object o)

전달받은 데이터를 객체에서 제거하고 수행결과를 boolean 타입으로 변환합니다.

▷ boolean removeAll(Collection<?> c)

인자로 전달한 Collection 객체가 가지고 데이터들을 모두 제거합니다.

E set(int index, E c)

전달하는 인덱스 위치의 데이터를 수정합니다.


  • ArrayList<E> 객체의 데이터 정렬

▶ void java.util.Collections.sort(List<T> list)

java.util.Collections 클래스의 static sort 메서드를 사용해 오름차순으로 정렬합니다.

인자로 정렬하고자 하는 List<T>인터페이스 구현 클래스의 객체를 전달합니다.

▶ void java.util.Collections.reverse(List<T> list)

java.util.Collections 클래스의 static sort 메소드를 사용해 내림차순으로 정렬합니다.

인자로 정렬하고자 하는 List<T> 인터페이스 구현 클래스의 객체를 전달합니다.


ArrayList<E> 객체를 생성하는 다양한 방법

  • Array 객체를 이용한 ArrayList 객체 생성

java.util.Arrays 클래스의 static asList() 메서드를 사용하여 Array 객체를 

java.util.Arrays$ArrayList 객체로 변환하여 ArrayList 객체 생성 시 사용됩니다.

- java.util.ArrayList 클래스를 이용한 객체와는 다릅니다.

 

  • ArrayList 객체 생성 시 초기값 전달

java.util.Arrays 클래스의 static asList() 메서드를 사용하여 Array 객체를

java.util.Arrays$ArrayList 객체로 변환하여 ArrayList 객체 생성 시 사용됩니다.

java.util.ArrayList 클래스를 이용한 객체와는 다릅니다.


다음 게시물에서는 Map 자료구조 컬렉션 클래스에 대해 자세히 공부하고 정리해서 다시 찾아뵙겠습니다!

열심히 나아가는 개발자 이었습니다.

go go!

코드프레소 URL: https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr

 

728x90
반응형