๊ด€๋ฆฌ ๋ฉ”๋‰ด

ejyoo's ๊ฐœ๋ฐœ ๋…ธํŠธ

ArrayList ๋ณธ๋ฌธ

BackEnd/Java

ArrayList

ejyoovV 2021. 3. 6. 16:22

๐Ÿ“ ArrayList๋Š” ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์ด Vector์™€ ๊ฐ™๋‹ค.

๐Ÿ“ ArrayList์˜ ๊ธฐ๋ณธ ๊ธธ์ด๋Š” 10์ด๋‹ค. (default_caracity = 10)

 

๐Ÿ’ก ArrayList ๋ฐ์ดํ„ฐ์ถ”๊ฐ€ : add()

๐Ÿ’ก ArrayList ๋ฐ์ดํ„ฐ๊ธธ์ด : size()

๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ํ›„ ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜์™€ ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•œ๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List list1 = new ArrayList<>();
		
		list1.add("aaa");
		list1.add(111);
		list1.add('k');
		list1.add(true);
		list1.add(12.34);
		
		System.out.println("list1์— ์ €์žฅ๋œ ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜ : " + list1.size());
		System.out.println("list1 ๋ชฉ๋ก ์ถœ๋ ฅ : " + list1);
	}
}

๐Ÿ’ก ์œ„์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ

์œ„์˜ ์ฝ”๋“œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ด๋“ค์–ด๊ฐ€์žˆ๋‹ค.

1) ๋‹คํ˜•์„ฑ

2) ์ปดํŒŒ์ผ๋Ÿฌ ์ž๋™ ํ˜• ์„ค์ •

3) ์˜คํ† ๋ฐ•์‹ฑ 

  • ๋‹คํ˜•์„ฑ
List list1 = new ArrayList<>();

์ด๋ถ€๋ถ„์ด๋‹ค. 

List์™€ ArrayList์˜ ๊ด€๊ณ„๋Š” ๋ง๋กœ ํ’€์ž๋ฉด

Collection ๊ฐ์ฒด์— List๊ฐ€ ํ•˜์œ„๋กœ ์žˆ๊ณ  List ์•ˆ์— ์—ฌ๋Ÿฌ ํ•˜์œ„ ๊ฐ์ฒด๋“ค ์ค‘ ArrayList๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•œ ์ž๋™ ํ˜•ํƒœ ์„ค์ •
List list1 = new ArrayList<>();

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์›๋ž˜๋Š” ์ œ๋„ˆ๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐˆ ํ˜•ํƒœ๋ฅผ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ œ๋„ˆ๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์ œ๋„ˆ๋ฆญ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ƒ๋žตํ•œ๋‹ค.

List<Object> list1 = new ArrayList<Object>();

ํ•˜์ง€๋งŒ JDK 1.7 ์ดํ›„๋ถ€ํ„ฐ๋Š” ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ํ˜•ํƒœ๋ฅผ ๋„ฃ์–ด์ฃผ์–ด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋งŒ์•ฝ JDK 1.7 ์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ํ˜•ํƒœ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค.

 

  • ์˜คํ† ๋ฐ•์‹ฑ(๋‹ค์šด ์บ์ŠคํŒ…์ด ์ผ์–ด๋‚จ Object -> ๋ž˜ํผํด๋ž˜์Šค๋กœ)
list1.add("aaa");
list1.add(111);
list1.add('k');
list1.add(true);
list1.add(12.34);

 list1์€ ์›๋ž˜ Object ๋กœ ๋งŒ๋“ค์–ด ์กŒ์ง€๋งŒ,

add ์‹œ String, Integer, Character, Boolean, Double ํ˜•์œผ๋กœ ์˜คํ† ๋ฐ•์‹ฑ -> ๋‹ค์šด ์บ์ŠคํŒ…์ด ์ผ์–ด๋‚œ๋‹ค.

์ € ๋„ค๊ฐœ์˜ ์ธ๋ฑ์Šค์˜ ํด๋ž˜์Šค์— ์ ‘๊ทผํ•œ ๋’ค ์ด๋ฆ„์„ ์ฐ์–ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List list1 = new ArrayList<>();
		
		list1.add("aaa");
		list1.add(111);
		list1.add('k');
		list1.add(true);
		list1.add(12.34);
		
		System.out.println("์ฒซ๋ฒˆ์งธ ์ž๋ฃŒ ํ˜•ํƒœ : " + list1.get(0).getClass().getName());
		System.out.println("๋‘๋ฒˆ์งธ ์ž๋ฃŒ ํ˜•ํƒœ : " + list1.get(1).getClass().getName());
		System.out.println("์„ธ๋ฒˆ์งธ ์ž๋ฃŒ ํ˜•ํƒœ : " + list1.get(2).getClass().getName());
		System.out.println("๋„ค๋ฒˆ์งธ ์ž๋ฃŒ ํ˜•ํƒœ : " + list1.get(3).getClass().getName());
		System.out.println("๋‹ค์„ฏ๋ฒˆ์งธ ์ž๋ฃŒ ํ˜•ํƒœ : " + list1.get(4).getClass().getName());
	}
}

๐Ÿ’ก ArrayList ๋ฐ์ดํ„ฐ ์ค‘๊ฐ„์— ์ถ”๊ฐ€ํ•˜๊ธฐ : add(Index,๊ฐ’)

ArrayList๋Š” ์ˆœ์„œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ฐ„์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

add๋ฉ”์„œ๋“œ์— ์ธ๋ฑ์Šค ๊ฐ’๋งŒ ๋ช…์‹œํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List list1 = new ArrayList<>();
		
		list1.add("aaa");
		list1.add(111);
		list1.add('k');
		list1.add(true);
		list1.add(12.34);
		
		System.out.println("list1์— ์ €์žฅ๋œ ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜ : " + list1.size());
		System.out.println("list1 ๋ชฉ๋ก ์ถœ๋ ฅ : " + list1);
		list1.add(3,"์ž๋ฃŒ ์ถ”๊ฐ€");
		System.out.println("list1 ์„ธ๋ฒˆ์งธ์— ์ž๋ฃŒ ์ถ”๊ฐ€ : " + list1);
	}
}

 

 

๐Ÿ’ก ArrayList ๋ฐ์ดํ„ฐ ์ถ”์ถœ : get(Index)

์ž๋ฃŒ์˜ ์ธ๋ฑ์Šค  ๋ฒˆํ˜ธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ธ๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List list1 = new ArrayList<>();
		
		list1.add("aaa");
		list1.add(111);
		list1.add('k');
		list1.add(true);
		list1.add(12.34);
		
		System.out.println("1๋ฒˆ์งธ ์ž๋ฃŒ : " + list1.get(1));
	}
}

 

๐Ÿ’ก ArrayList ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ : set(Index,๊ฐ’)

์ž๋ฃŒ์˜ ์ธ๋ฑ์Šค  ๋ฒˆํ˜ธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List list1 = new ArrayList<>();
		
		list1.add("aaa");
		list1.add(111);
		list1.add('k');
		list1.add(true);
		list1.add(12.34);
		
		System.out.println("list1์— ์ €์žฅ๋œ ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜ : " + list1.size());
		System.out.println("list1 ๋ชฉ๋ก ์ถœ๋ ฅ : " + list1);
		list1.set(3,"์ž๋ฃŒ ์ˆ˜์ •");
		System.out.println("list1 ์„ธ๋ฒˆ์งธ์— ์ž๋ฃŒ ์ˆ˜์ • : " + list1);
	}
}

๐Ÿ’ก ArrayList ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ : remove(Index)

์ž๋ฃŒ์˜ ์ธ๋ฑ์Šค  ๋ฒˆํ˜ธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List list1 = new ArrayList<>();
		
		list1.add("aaa");
		list1.add(111);
		list1.add('k');
		list1.add(true);
		list1.add(12.34);
		
		System.out.println("list1 ์‚ญ์ œ (์ „) ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜ : " + list1.size());
		System.out.println("list1 ์‚ญ์ œ (์ „) ๋ชฉ๋ก ์ถœ๋ ฅ : " + list1);
		list1.remove(3);
		System.out.println("list1 ์‚ญ์ œ (ํ›„) ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜ : " + list1.size());
		System.out.println("list1 ์‚ญ์ œ (ํ›„) ๋ชฉ๋ก ์ถœ๋ ฅ : " + list1);
	}
}

๐Ÿ’ก ArrayList ์ƒ์„ฑ ์‹œ ์ œ๋„ค๋ฆญ ์ง€์ •

ArrayList ์ƒ์„ฑ ์‹œ ์ œ๋„ค๋ฆญ์„ ์ง€์ •ํ•˜์—ฌ ArrayList์— ์‚ฝ์ž…๋  ์ž๋ฃŒ์˜ ์ž๋ฃŒํ˜•์„ ์ œํ•œํ•œ๋‹ค.

์ž๋ฃŒํ˜• ์ง€์ • ์‹œ ๋งž์ง€์•Š๋Š” ์ž๋ฃŒํ˜• ์กด์žฌํ•  ๋•Œ ์—๋Ÿฌ ๋ฐœ์ƒ.(์ œ๋„ค๋ฆญ์˜ ํŠน์„ฑ)

๐Ÿ’ก ArrayList ์ž๋ฃŒํ˜•์˜ ์ธ๋ฑ์Šค ์œ„์น˜ ๋‚ด ๊ฐ’ ์ถœ๋ ฅ - ์ผ๋ฐ˜ for๋ฌธ

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

public class Main {
	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		
		list1.add("aaa");
		list1.add("bbb");
		list1.add("ccc");
		list1.add("ddd");
		list1.add("eee");
		
		for(int i = 0 ; i < list1.size(); i++) {
			System.out.println(i + " : " + list1.get(i));
		}
	}
}

๐Ÿ’ก ArrayList ์ž๋ฃŒํ˜•์˜ ์ธ๋ฑ์Šค ์œ„์น˜ ๋‚ด ๊ฐ’ ์ถœ๋ ฅ - ํ–ฅ์ƒ๋œ for๋ฌธ

ํ–ฅ์ƒ๋œ for ๋ฌธ ์‚ฌ์šฉ ์‹œ ์ฒซ๋ฒˆ์งธ ์„ค์ •ํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์€ ์ถœ๋ ฅํ•  ArrayList์™€ ํƒ€์ž…์„ ๋™์ผํ•˜๊ฒŒ ํ•œ๋‹ค.

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

public class Main {
	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		
		list1.add("aaa");
		list1.add("bbb");
		list1.add("ccc");
		list1.add("ddd");
		list1.add("eee");
		
		for(String s : list1) {
			System.out.println(s);
		}
	}
}

๐Ÿ’ก ArrayList ์ž๋ฃŒํ˜•์˜ ์ธ๋ฑ์Šค ์œ„์น˜ ๋‚ด ๊ฐ’ ์กด์žฌ์—ฌ๋ถ€ ํ™•์ธ : contains()

  • contains(๊ฐ’)
    - ArrayList ๋‚ด ๊ฐ’ ์กด์žฌ ์‹œ true ๋ฐ˜ํ™˜
    - ArrayList ๋‚ด ๊ฐ’ ์กด์žฌํ•˜์ง€ ์•Š์„ ์‹œ false ๋ฐ˜ํ™˜
import java.util.ArrayList;
import java.util.List;

public class Main {
	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		
		list1.add("aaa");
		list1.add("bbb");
		list1.add("ccc");
		list1.add("ddd");
		list1.add("eee");
		
		System.out.println(list1.contains("ddd"));//true
		System.out.println(list1.contains("zzz"));//false
	}
}

๐Ÿ’ก ArrayList ๋‚ด ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ : toArray()

๋ฆฌ์ŠคํŠธ ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ž๋ฃŒํ˜•์€ Object์ด๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”

์™ธ๋ถ€์—์„œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•œ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ,

๋ณธ์ธ์ด ๋งŒ๋“  ์ž๋ฃŒ๋Š” ArrayList์ธ๋ฐ ์˜คํ”ˆ์†Œ์Šค๋Š” ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ• ๋•Œ,

๋‹ค๋ฅธ ๋Œ€์•ˆ์ด ์—†๋Š”๊ฒฝ์šฐ ํ•„์š”ํ•œ ์˜คํ”ˆ์†Œ์Šค์— ๋งž์ถ”์–ด ํ˜•ํƒœ๋ฅผ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉํ•จ.

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

public class Main {
	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		
		list1.add("aaa");
		list1.add("bbb");
		list1.add("ccc");
		list1.add("ddd");
		list1.add("eee");
		
		Object[] strArr = list1.toArray();
		System.out.println("๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜ : " + strArr.length);
	}
}

๐Ÿ’ก ArrayList<String> ๋‚ด ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜(Object ๊ฐ€ ์•„๋‹Œ ์ œ๋„ˆ๋ฆญ'String' ํ˜•์— ๋งž์ถ”์–ด ๋ณ€ํ™˜) : toArray()

๋ฆฌ์ŠคํŠธ ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ž๋ฃŒํ˜•์€ Object์ด๋‹ค.

ํ•˜์ง€๋งŒ ArrayList์— ์‚ฌ์šฉํ•œ ์ œ๋„ˆ๋ฆญ ํƒ€์ž… 'String'์— ๋งž์ถ”์–ด ํ˜•๋ณ€ํ™˜ ํ•˜๊ณ ์ž ํ•˜๋Š”๊ฒฝ์šฐ ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์ด ํ†ตํ•˜์ง€ ์•Š๋Š”๋‹ค.

(์ฝ”๋“œ ์ƒ ์—๋Ÿฌ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋‚˜, Run ์‹œ ์—๋Ÿฌ ๋ฐœ์ƒ)

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

public class Main {
	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		
		list1.add("aaa");
		list1.add("bbb");
		list1.add("ccc");
		list1.add("ddd");
		list1.add("eee");
		
		String[] strArr = (String[])list1.toArray();
		System.out.println("๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜ : " + strArr.length);
	}
}

๐Ÿ“ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์ถ”์ •

- ์บ์ŠคํŒ…์ด ๋˜์ง€ ์•Š๋Š” ์กฐ๊ฑด์ž„ String๊ณผ List๋Š” ์•„์˜ˆ ๋‹ค๋ฅธ ๊ด€๊ณ„์ž„(์ƒ์†๊ด€๊ณ„๊ฐ€ ์•„๋‹˜)

- ๋”ฐ๋ผ์„œ ํ˜•๋ณ€ํ™˜์„ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ค‘ ํ•˜๋‚˜๊ฐ€ List์•ˆ์˜ toArray์— ์ œ๋„ˆ๋ฆญ ํƒ€์ž…์˜ 0๊ฐœ์งœ๋ฆฌ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์ฃผ๋ฉด ๊ทธ ํƒ€์ž…์— ๋งž์ถ”์–ด ํ˜•๋ณ€ํ™˜์ด ๋จ.

(์ƒ์†๊ด€๊ณ„๊ฐ€ ์•„๋‹Œ๊ฒฝ์šฐ, ๊ทธ ํƒ€์ž…์—์„œ ์ œ๊ณตํ•˜๋Š” ํ˜•๋ณ€ํ™˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐพ์•„์•ผ ํ•จ.)

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

public class Main {
	public static void main(String[] args) {
		List<String> list1 = new ArrayList<String>();
		
		list1.add("aaa");
		list1.add("bbb");
		list1.add("ccc");
		list1.add("ddd");
		list1.add("eee");
		
		String[] strArr = list1.toArray(new String[0]);
		System.out.println("๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜ : " + strArr.length);
	}
}