Skip to content

Latest commit

ย 

History

History
92 lines (65 loc) ยท 4.38 KB

File metadata and controls

92 lines (65 loc) ยท 4.38 KB

Java ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํ•„์ˆ˜ ๋ฉ”์„œ๋“œ ๋ฐ ๊ฐœ๋… ์ •๋ฆฌ

์ž๋ฐ” ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ Array, List, ArrayList๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๋ฌธ์ œ์˜ ๊ธฐ๋ณธ ๋ผˆ๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ์„ธ ๊ฐ€์ง€๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ•„์ˆ˜๋กœ ์•Œ์•„์•ผ ํ•˜๋Š” ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ์™€ ํŒ์„ ์ƒํ™ฉ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


1. Array (๋ฐฐ์—ด) ๊ธฐ๋ณธ & Arrays ํด๋ž˜์Šค

์ž๋ฐ” ๊ธฐ๋ณธ ๋ฐฐ์—ด(int[], String[] ๋“ฑ)์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ java.util.Arrays ํด๋ž˜์Šค์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์„œ๋“œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์‹œ
arr.length ๋ฐฐ์—ด์˜ ๊ธธ์ด(๋ณ€์ˆ˜) int len = arr.length;
Arrays.sort(arr) ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ (์›๋ณธ ๋ณ€๊ฒฝ) Arrays.sort(arr);
Arrays.copyOfRange(arr, from, to) ๋ฐฐ์—ด์˜ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ž๋ฅธ ์ƒˆ ๋ฐฐ์—ด ์ƒ์„ฑ (to๋Š” ์ œ์™ธ) int[] sub = Arrays.copyOfRange(arr, 0, 3);
Arrays.fill(arr, val) ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํŠน์ • ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” (DP ๋“ฑ์—์„œ ์œ ์šฉ) Arrays.fill(arr, -1);
Arrays.asList(arr) ๋ฐฐ์—ด์„ ๊ณ ์ • ํฌ๊ธฐ์˜ List๋กœ ๋ณ€ํ™˜ List<String> list = Arrays.asList(strArr);

โš ๏ธ ์ฃผ์˜: Arrays.sort()์— ๋ณ„๋„์˜ ์ •๋ ฌ ๊ธฐ์ค€(Comparator)์„ ๋„ฃ๊ณ  ์‹ถ๋‹ค๋ฉด, int[] ๊ฐ™์€ ๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด์ด ์•„๋‹Œ Integer[] ๊ฐ™์€ ์ฐธ์กฐํ˜• ๊ฐ์ฒด ๋ฐฐ์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


2. List & ArrayList

ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์”๋‹ˆ๋‹ค. ์ฝ”ํ…Œ์—์„œ๋Š” ๋Œ€๋‹ค์ˆ˜ List<T> list = new ArrayList<>(); ํ˜•ํƒœ๋กœ ์„ ์–ธํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์„œ๋“œ ์„ค๋ช… ์˜ˆ์‹œ
list.size() ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ int size = list.size();
list.add(value) ๋ฆฌ์ŠคํŠธ ๋์— ์š”์†Œ ์ถ”๊ฐ€ list.add(10);
list.add(index, value) ํŠน์ • ์ธ๋ฑ์Šค์— ์š”์†Œ ์‚ฝ์ž… (๋’ค ์š”์†Œ๋“ค์€ ๋ฐ€๋ฆผ) list.add(0, 5);
list.get(index) ํŠน์ • ์ธ๋ฑ์Šค์˜ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ int val = list.get(2);
list.set(index, value) ํŠน์ • ์ธ๋ฑ์Šค์˜ ๊ฐ’ ๋ณ€๊ฒฝ list.set(1, 20);
list.remove(index) ํŠน์ • ์ธ๋ฑ์Šค์˜ ์š”์†Œ ์‚ญ์ œ (์‚ญ์ œ๋œ ๊ฐ’ ๋ฐ˜ํ™˜) list.remove(0);
list.indexOf(value) ํŠน์ • ๊ฐ’์ด ์œ„์น˜ํ•œ ์ธ๋ฑ์Šค ์ฐพ๊ธฐ (์—†์œผ๋ฉด -1) int idx = list.indexOf("target");
list.contains(value) ํŠน์ • ๊ฐ’์ด ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ (boolean) if (list.contains(5)) { ... }
list.clear() ๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ์š”์†Œ ์‚ญ์ œ list.clear();

3. Collections ํด๋ž˜์Šค (List ์ •๋ ฌ ๋ฐ ๊ฐ€๊ณต)

List ๊ณ„์—ด์˜ ์ปฌ๋ ‰์…˜์„ ๋‹ค๋ฃฐ ๋•Œ๋Š” java.util.Collections ํด๋ž˜์Šค๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ: Collections.sort(list);
  • ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ: Collections.sort(list, Collections.reverseOrder());
  • ์ˆœ์„œ ๋’ค์ง‘๊ธฐ (๋’ค์ฃฝ๋ฐ•์ฃฝ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์•„๋‹˜): Collections.reverse(list);
  • ์ตœ๋Œ“๊ฐ’ / ์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ:
int max = Collections.max(list);
int min = Collections.min(list);

4. ๐Ÿ’ก ์ฝ”ํ…Œ ๋‹จ๊ณจ ๋ณ€ํ™˜ ํŒจํ„ด (ํ˜•๋ณ€ํ™˜)

์ž๋ฐ” ์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋ฉด ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ, ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ํŒจํ„ด์€ ์™ธ์›Œ๋‘์‹œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

โ‘  List๋ฅผ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๊ธฐ (์ด๋ฒˆ ๋ฌธ์ œ ๊ตฌ์กฐ)

ArrayList<int[]> al = new ArrayList<>();
// ... al์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ...
int[][] answer = al.toArray(new int[al.size()][]);

โ‘ก int[] ๋ฐฐ์—ด์„ List<Integer>๋กœ ๋ณ€ํ™˜ (Stream ํ™œ์šฉ)

int[] arr = {1, 2, 3};
List<Integer> list = Arrays.stream(arr)
                           .boxed()
                           .collect(Collectors.toList());

โ‘ข List<Integer>๋ฅผ int[]๋กœ ๋ณ€ํ™˜ (Stream ํ™œ์šฉ)

List<Integer> list = new ArrayList<>();
// ... list์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ...
int[] arr = list.stream().mapToInt(Integer::intValue).toArray();

๐Ÿš€ ์ฝ”ํ…Œ์šฉ ๊ฟ€ํŒ ์š”์•ฝ

  1. ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๊ณ  ์ธ๋ฑ์Šค๋กœ ๋น ๋ฅธ ์ ‘๊ทผ์ด ํ•„์š”ํ•˜๋‹ค โžก๏ธ Array
  2. ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ ๊ณ„์† ๋ณ€ํ•˜๊ณ , ์ค‘๊ฐ„ ์‚ฝ์ž…/์‚ญ์ œ๋‚˜ ํƒ์ƒ‰ ๋ฉ”์„œ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค โžก๏ธ ArrayList
  3. ๋žŒ๋‹ค์‹์„ ์“ธ ๋•Œ ๋ฆฌ์ŠคํŠธ ์•ˆ์˜ ๋ณ€์ˆ˜๋‚˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์™ธ๋ถ€ ๋ณ€์ˆ˜๊ฐ€ ๊ณ ์ •๊ฐ’(final ํ˜น์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ)์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ํ•ญ์ƒ ์ธ์ง€ํ•˜๊ธฐ!