๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์–ธ์–ด/java

[java] ๋ฐฐ์—ด

by ๊ฐœ๋ฐœLOG 2024. 6. 4.
๋ฐ˜์‘ํ˜•

๋ฐฐ์—ด์˜ ํŠน์ง•

๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•ด 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด์€ ์„ ์–ธํ• ๋•Œ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋จ.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ์œ„์น˜๋ฅผ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ ํšจ์œจ์ด ๋–จ์–ด์ง.
  • ๋ฐฐ์—ด์— ๋“ค์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ ์ž๋ฃŒํ˜• ์ด์–ด์•ผ ํ•จ.
  • ๋ฐฐ์—ด ์ค‘๊ฐ„์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ด๋™์‹œ์ผœ์•ผ ํ•จ.

๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ

int scores[] = {95,100,87,91};
int[] scores = {95,100,87,91};
int[] scores = new int[4];
scores[2] = 90; // 3๋ฒˆ์งธ ์š”์†Œ(87)์„ 90์œผ๋กœ ๋ณ€๊ฒฝ.

System.out.println(scores[0]);
  • ์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ์–ธ์‹œ ํƒ€์ž…[] ๋ณ€์ˆ˜๋ช… ํ˜น์€ ํƒ€์ž… ๋ณ€์ˆ˜๋ช…[] ํ˜•์‹์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฐฐ์—ด์„ ์–ธ์‹œ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋กœ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋จ.
  • ๋ฐฐ์—ด์›์†Œ์— ์ ‘๊ทผ์€ ๋ฐฐ์—ด๋ช…[์ธ๋ฑ์Šค] ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉ.
  • ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘.
  • ๋ฐฐ์—ด.length ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ.

๋ฐฐ์—ด์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ๋Š” Arrays ํด๋ž˜์Šค์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด๊ณผ ๊ด€๋ จ๋œ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” Arrays ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐฐ์—ด์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ๊ฐ€ ๋ถˆํŽธํ•จ.
  • ๋”ฐ๋ผ์„œ List ๋“ฑ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ.
  • Arrays ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” static ์ด๋ฏ€๋กœ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
  • java.util ํŒจํ‚ค์ง€ import๊ฐ€ ํ•„์š”ํ•จ.

asList()

  • ๋ฐฐ์—ด์„ ArrayList ๋กœ ๋ฐ˜ํ™˜ํ•ด ์ž๋ฐ” ์ปฌ๋ ‰์…˜ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹ค๋งŒ ๋ฐ˜ํ™˜๋˜๋Š” ArrayList ๋Š” ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋œ ํƒ€์ž…์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ๊ฐ’์„ ์ถ”๊ฐ€ํ• ์ˆ˜ ์—†๋‹ค.
String[] cars = {"hyundai","bmw","benz","toyota"};
ArrayList car_list = Arrays.asList(cars);

toString()

  • ๋ชจ๋“  ์ž๋ฐ” Object ์— ํฌํ•จ๋œ ๋ฉ”์„œ๋“œ๋กœ ๊ธฐ๋ณธ์€ Object ID๋ฅผ ์ถœ๋ ฅํ•จ.
  • ๋ฐฐ์—ด ์ž์ฒด๋ฅผ System.out.println() ๋“ฑ์—์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  Object ID๊ฐ€ ์ถœ๋ ฅ๋จ.
  • Arrays.toString()์„ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Œ.
System.out.println(cars);  // Object ID๊ฐ€ ์ถœ๋ ฅ๋จ.
System.out.println(Arrays.toString(cars));  // ["hyundai","bmw","benz","toyota"]

sort()

  • ๋ฐฐ์—ด์›์†Œ๋ฅผ ์ •๋ ฌํ•œ๋‹ค. ์›๋ณธ ๋ฐฐ์—ด ์ž์ฒด๊ฐ€ ์›์†Œ๋“ค์ด ์ •๋ ฌ๋œ ์ˆœ์„œ๋กœ ๋ณ€๊ฒฝ๋จ.
  • sort(array, Comparator), sort(array, int fromindex, int toindex)โ€‹๋ฅผ ์ด์šฉํ•ด ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ๋ฐ ๊ตฌ๊ฐ„ ์ •๋ ฌ ๋“ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ตฌ๊ฐ„ ์ •๋ ฌ์˜ ๊ฒฝ์šฐ fromindex ~ toindex-1 ๊นŒ์ง€๋ฅผ ๋ฒ”์œ„๋กœ ํ•จ.
Arrays.sort(cars);  // [benz, bmw, hyundai, toyota]
Arrays.sort(cars, Collections.reverseOrder());  // [toyota, hyundai, bmw, benz]
Arrays.sort(cars, 0,2); // [hyundai, toyota, bmw, benz]

copyOf()

  • ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜.
  • copyOfRage() ๋Š” ํŠน์ • ๋ฒ”์œ„๋งŒ ๋ฐ˜ํ™˜.
  • ๊ตฌ๊ฐ„ ๋ณต์‚ฌ์˜ ๊ฒฝ์šฐ fromindex ~ toindex-1 ๊นŒ์ง€๋ฅผ ๋ฒ”์œ„๋กœ ํ•จ.
// ์•ž์˜ ๋งˆ์ง€๋ง‰ ์˜ˆ์ œ ๊ฒฐ๊ณผ์— ์ด์–ด์ง.
String[] cars_copied = Arrays.copyOf(cars);  //[hyundai, toyota, bmw, benz]
String[] cars_copied = Arrays.copyOfRange(cars, 0,2);   // [hyundai, toyota]
๋ฐ˜์‘ํ˜•