[Java] Collection | 자바 List | ArrayList | 다양한 메소드

2023. 3. 2. 10:08·Java

List 란?

Fig. 1. http://wiki.hash.kr/index.php/%EC%9E%90%EB%B0%94_%EC%BB%AC%EB%A0%89%EC%85%98

List는 자바에서 제공하는 데이터 구조 중 하나이며, 여러 개의 데이터를 저장할 수 있는 자료형입니다. List는 배열과 비슷하게 인덱스를 사용하여 데이터에 접근할 수 있지만, 배열과 달리 크기가 가변적이므로 데이터의 추가, 삭제 등이 용이합니다

크기가 가변적이라는 것은 리스트(List)에 저장된 데이터의 개수가 변할 수 있다는 뜻입니다. 즉, 데이터를 추가하거나 삭제할 때마다 리스트의 크기가 동적으로 변화할 수 있습니다. 이와는 달리 배열(Array)은 미리 크기를 지정하고 데이터를 저장하는 것이기 때문에, 크기를 변경할 수 없습니다

List는 인터페이스로 정의되어 있고, ArrayList, LinkedList 등 다양한 구현체가 존재합니다. ArrayList는 내부적으로 배열을 사용하여 데이터를 저장하며, 데이터 접근 속도가 빠릅니다. LinkedList는 노드(Node)를 사용하여 데이터를 저장하며, 데이터의 추가, 삭제가 빈번하게 일어나는 경우에 유용합니다

 

List는 제네릭(Generic)을 지원하여 다양한 자료형의 데이터를 저장할 수 있습니다. 예를 들어, List<String>은 문자열 데이터를 저장하는 List를 의미하며, List<Integer>는 정수형 데이터를 저장하는 List를 의미합니다


 

List 예시

import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("사과");
        list.add("바나나");
        list.add("체리");

        for (String item : list) {
            System.out.println(item);
        }
    }
}
//출력 : 사과
//출력 : 바나나
//출력 : 체리

위 코드에서는 ArrayList를 사용하여 List 객체를 생성하고, add() 메소드를 사용하여 문자열 데이터를 추가하였습니다.  그리고 for-each 문을 사용하여 모든 데이터를 출력하였습니다


 

다양한 List 메소드

List에는 다양한 메소드가 존재하는데, 대표적인 메소드 몇 가지를 살펴보면 다음과 같습니다

  • add(E e) : 데이터를 추가한다.
  • remove(Object o) : 데이터를 삭제한다.
  • get(int index) : 지정된 인덱스에 해당하는 데이터를 반환한다.
  • set(int index, E element) : 지정된 인덱스에 해당하는 데이터를 변경한다.
  • size() : 저장된 데이터의 개수를 반환한다.
  • contains(Object o) : 지정된 데이터가 포함되어 있는지 확인한다.

 

add(E e)

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");

 for (String item : fruits) {
            System.out.println(item);
        }
        
 // 출력 : apple
 // 출력 : banana
 // 출력 : cherry

 

remove(Object o)

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");

fruits.remove("banana");  // return 값은 true or false

for(String item : fruits){
	System.out.println(item);
	}
//출력 : apple
//출력 : cherry

 

get(int index) 

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");

String firstFruit = fruits.get(0);

System.out.println(firstFruit);

//출력 : apple

 

set(int index, E element) 

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");

fruits.set(1, "orange");

for(String item : fruits){
	System.out.println(item);
    }
    
//출력 : apple
//출력 : orange
//출력 : cherry

 

size()

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");

int numOfFruits = fruits.size();

System.out.println(numOfFruits);

//출력 : 3

 

contains(Object o)

List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");

boolean hasBanana = fruits.contains("banana");

System.out.println(hasBanana);

//출력 : true

위와 같이 List의 각 함수를 사용하는 예시 코드를 보여드렸습니다


저작자표시 비영리 변경금지 (새창열림)
'Java' 카테고리의 다른 글
  • [Java] 재귀(Recursion) 함수란? 쉽게 이해해보자
  • [Java] 자바에서 ConcurrentModificationException이 발생하는 이유와 해결 방법 | Map.keySet()
  • [Java] 자바 프로그래밍에서 흔히 발생하는 에러와 해결 방법!
  • [Java] 이클립스에서 JUnit 사용법: 간편하게 test case 작성하기
Jelong
Jelong
커스텀 웹: https://jaehong-park.com Github: https://github.com/qkrwoghd04
  • Jelong
    24/7 Developer's Note
    Jelong
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Software Engineering
      • Ubuntu
      • Network
      • JavaScript
      • Web
      • Interaction Design
      • React Native
      • React
      • Algorithm
      • Java
      • Database design
      • IT Trend
      • TroubleShooting
      • AWS
      • Interview
      • LG CNS AM CAMP 1기
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JS
    데이터 구조
    typescript
    html
    javascript
    블랙 박스 테스트
    BST
    ChatGPT
    mininet
    알고리즘 분석
    heap
    css
    frontend
    GPT-4
    java
    오블완
    알고리즘
    자바
    AWS
    이진트리
    prototyping
    expo
    화이트 박스 테스트
    React
    Queues
    티스토리챌린지
    generic
    소프트웨어 공학
    미니넷
    자바스크립트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Jelong
[Java] Collection | 자바 List | ArrayList | 다양한 메소드
상단으로

티스토리툴바