๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Java

[Java] ์ž๋ฐ” ArrayList ์ •๋ฆฌ

๋ฐ˜์‘ํ˜•

ArrayList

ArrayList๋ž€?

ArrayList๋ž€ Collection ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ๋ถ€์ด๋ฉด java.util ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
์ž๋ฐ”์—์„œ array๋Š” ๊ณ ์ •๋œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€์ง€๋งŒ ArrayList๋Š” ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ArrayList ์ƒ์„ฑ

java.util ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด import ํ•ด์ค€๋‹ค.

import java.util.ArrayList;

๊ทธ๋ฆฌ๊ณ  ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ž…๋ ฅํ•˜์—ฌ ์ƒ์„ฑํ•ด์ค€๋‹ค.

ArrayList<Integer> arrayList = new ArrayList<>();

์œ„์ฒ˜๋Ÿผ Integer๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ๋„ ์žˆ๊ณ , String, Object๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ ์‚ฝ์ž…

๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ๋Š” add ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
add(1)์ฒ˜๋Ÿผ ์ œ์ผ ๋’ค์ชฝ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ ,
add(n,1) ์ฒ˜๋Ÿผ n๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์‚ฝ์ž…ํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค.

  arrayList.add(1);
  arrayList.add(4);
  arrayList.add(1,3);
  arrayList.add(6);
  arrayList.add(7);

1 3 4 6 7

๋ฐ์ดํ„ฐ ์‚ญ์ œ

ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ๋Š” remove ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  arrayList.remove(2) //์ธ๋ฑ์Šค๊ฐ€ 2, 3๋ฒˆ์จฐ ์›์†Œ๋ฅผ ์ œ๊ฑฐ

1 3 6 7

๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ

๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” ๋ณ€๊ฒฝํ•  ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค์™€ ๋ณ€๊ฒฝํ•  ๊ฐ’์„ ์ด์šฉํ•ด์„œ set ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  arrayList.set(3,9)

1 3 6 9

๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

ArrayList์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ๋•Œ๋Š” ํŠน์ • ์ธ๋ฑ์Šค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” get ๋ฉ”์†Œ๋“œ์™€
์›ํ•˜๋Š” ๋ถ€๋ถ„์— ๋ฐ์ดํ„ฐ๋“ค์„ ์ž˜๋ผ์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” subList ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
subList๋Š” ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค์— ๋‹ค์Œ ์ธ๋ฑ์Šค๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค.
subList(0,2)๋ฅผ ํ•˜๊ฒŒ๋˜๋ฉด ์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ ์ธ๋ฑ์Šค 1๊นŒ์ง€์˜ ๊ฐ’๋“ค์„ List ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

  arrayList.get(3);

  List<Integer> list = arrayList.subList(0,2);

9
1 3

๋ฐ์ดํ„ฐ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ

ArrayList์— ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” contains ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 
๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ณ  ์–ด๋–ค ์ธ๋ฑ์Šค์— ์žˆ๋Š”์ง€๊นŒ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด indexOf๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  arrayList.contains(2);

  arrayList.indexOf(3);

false
1

contains๋Š” ์กด์žฌํ•œ๋‹ค๋ฉด true, ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
indexOf๋Š” ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€์žฅ ์•ž์— ์œ„์น˜ํ•œ ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ , ์—†๋‹ค๋ฉด -1์„ ๋ฆฌํ„ดํ•œ๋‹ค.

ArrayList ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ํ™•์ธ

ArrayList๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” isEmpty๋ฉ”์†Œ๋“œ์™€ size๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
isEmpty๋Š” ๋น„์–ด์žˆ๋‹ค๋ฉด true๋ฅผ ์•„๋‹ˆ๋ผ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๊ณ ,
size๋Š” ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด ์ฃผ๋Š”๋ฐ ๊ฐœ์ˆ˜๊ฐ€ 0์ด๋ฉด ๋น„์–ด์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•