본문 바로가기
자료구조

[자료구조] ArrayList

by eddypark 2023. 11. 3.

- 가장 대표적인 List형태의 자료구조이다.

- 이어 쓰고 읽기에 가장 적합한 구조이다.(연속된 메모리 공간을 사용)

- ArrayList의 크기는 자동으로 조정된다.

- 동기화를 제공하지 않는다.

 

ArrayList 생성

import java.util.ArrayList;

ArrayList<Integer> integers1 = new ArrayList<Integer>(); // 타입 지정
ArrayList<Integer> integers2 = new ArrayList<>(); // 타입 생략 가능
ArrayList<Integer> integers3 = new ArrayList<>(10); // 초기 용량(Capacity) 설정
ArrayList<Integer> integers4 = new ArrayList<>(integers1); // 다른 Collection값으로 초기화
ArrayList<Integer> integers5 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); // Arrays.asList()

ArrayList 추가 및 변경

import java.util.ArrayList;

public class ArrayListTest{
	public static void main(String[] args) {
    	ArrayList<String> colors = new ArrayList<>();
        // add() method
        colors.add("Black");
        colors.add("White");
        colors.add(0, "Green");
        colors.add("Red");
        
        // set() method
        colors.set(0, "Blue");
        
        System.out.println(colors);
	}
}


ArrayList 삭제

import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListTest {
	public static void main(String[] args) {
    	ArrayList<String> colors = new ArrayList<>(Arrays.asList("Black", "White", "Green", "Red"));
        String removedColor = colors.remove(0);
        System.out.println("Removced color is " + removedColor);
        
        color.remove("White");
        System.out.println(colors);
        
        colors.clear();
        System.out.println(colors);
	}
}

ArrayList 전체 값 확인

import java.util.ArrayList;
import java.util.Array;
import java.util.Iterator;
import java.util.ListIterator;

public class ArrayListTest {
	public static void main(String[] args) {
    	ArrayList<String> colors = new ArrayList<>(Arrays.asList("Black", "White", "Green", "Red"));
       	// for-each loop
        for (String color : colors) {
        	System.out.print(color + " ");
        }
        System.out.println();
        
        // for loop
        for (int i = 0; i < colors.size(); ++i) {
        	System.out.print(colors.get(i) + " ");
        }
        System.out.println();
        
        // using iterator
        Iterator<Sting> iterator = colors.iterator();
        while (iterator.hasNext()) {
        	System.out.print(iterator.next() + " ");
        }
        System.out.println();
        
        // using listIterator
        ListIterator<String> listIterator = colors.listIterator(colors.size());
        while (listIterator.hasPrevious()) {
        	System.out.print(listIterator.previous() + " ");
        }
        System.out.println();
	}
}


ArrayList 값 존재 유무 확인

import java.util.ArrayList;
import java.util.Arrays;

public class ArrayListTest {
	public static void main(String[] args) {
    	ArrayList<String> colors = new ArrayList<>(Arrays.asList("Black", "White", "Green", "Red));
        boolean contains = colors.contains("Black");
        System.out.println(contains);
        
        int index = colors.indexOf("Blue");
        System.out.println(index);
        
        index = colors.indexOf("Red");
        System.out.println(index);
    }
}

contain()는 값이 있는 경우 true, 없는 경우 false을 리턴한다.

indexOf()는 값이 있는 경우 해당 값의 인덱스 리턴, 값이 없는 경우 -1을 리턴한다.

'자료구조' 카테고리의 다른 글

[자료구조] TreeSet  (0) 2023.11.07
[자료구조] Hash Set  (0) 2023.11.07
[자료구조] Vector  (0) 2023.11.06
[자료구조] Stack  (0) 2023.11.06
[자료구조] 자료구조형  (0) 2023.11.03