Arrays.asList()

Java์—์„œ ๋ฐฐ์—ด์„ ArrayList๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

Java์—์„œ๋Š” ์ผ๋ฐ˜ ๋ฐฐ์—ด์„ ArrayList๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Arrays.asList() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ฃผ์˜์‚ฌํ•ญ, ๊ทธ๋ฆฌ๊ณ  ArrayList๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Arrays.asList() ์‚ฌ์šฉํ•˜๊ธฐ

๋จผ์ €, Arrays.asList() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

package Test;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;

public class TestArrayAsList {
   public static void main(String[] args) {
      String[] strs = {"alpha", "beta", "charlie"};
      System.out.println(Arrays.toString(strs));   // [alpha, beta, charlie]

      List<String> lst = Arrays.asList(strs); // new ArrayList<String>(); ๋Œ€์‹ ์— ์‚ฌ์šฉ
      System.out.println(lst);  // [alpha, beta, charlie]

      lst.add("ttt");     // error : asList()๋กœ List๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์›์†Œ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†์Œ

      // Changes in array or list write thru
      strs[0] += "88";
      lst.set(2, lst.get(2) + "99"); // 2๋ฒˆ์งธ ์ธ๋ฑ์Šค ์›์†Œ์— charlie99 ๋„ฃ์Œ
      System.out.println(Arrays.toString(strs)); // [alpha88, beta, charlie99]
      System.out.println(lst);  // [alpha88, beta, charlie99]

      // Initialize a list using an array
      List<Integer> lstInt = Arrays.asList(22, 44, 11, 33);
      System.out.println(lstInt);  // [22, 44, 11, 33]
   }
}

์œ„ ์ฝ”๋“œ์—์„œ Arrays.asList() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด strs๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•œ lst๋Š” ๋ฐฐ์—ด๊ณผ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์›๋ณธ ๋ฐฐ์—ด๋„ ํ•จ๊ป˜ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, strs[0]์„ ๋ณ€๊ฒฝํ•˜๋ฉด lst์—์„œ๋„ ํ•ด๋‹น ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Arrays.asList()๋กœ ์ƒ์„ฑ๋œ ๋ฆฌ์ŠคํŠธ๋Š” ๊ณ ์ • ํฌ๊ธฐ ๋ฆฌ์ŠคํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ArrayList ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ArrayList๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

ArrayList ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ์ • ํฌ๊ธฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๊ฐ€๋ณ€ ํฌ๊ธฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์›๋ณธ ๋ฐฐ์—ด๊ณผ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

package Test;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;

public class TestArrayAsList {
   public static void main(String[] args) {
      String[] strs = {"alpha", "beta", "charlie"};
      System.out.println(Arrays.toString(strs));   // [alpha, beta, charlie]

      List<String> lst = new ArrayList<String>(Arrays.asList(strs));
      System.out.println(lst);  // [alpha, beta, charlie]

      lst.add("ttt");     // ์ด์ œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

      // Changes in array or list write thru
      strs[0] += "88";
      lst.set(2, lst.get(2) + "99"); // 2๋ฒˆ์งธ ์ธ๋ฑ์Šค ์›์†Œ์— charlie99 ๋„ฃ์Œ
      System.out.println(Arrays.toString(strs)); // [alpha88, beta, charlie]
      System.out.println(lst);  // [alpha, beta, charlie99, ttt]

      // Initialize a list using an array
      List<Integer> lstInt = Arrays.asList(22, 44, 11, 33);
      System.out.println(lstInt);  // [22, 44, 11, 33]
   }
}

์ด์ œ lst๋Š” ๋…๋ฆฝ์ ์ธ ArrayList ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์›๋ณธ ๋ฐฐ์—ด๊ณผ ์ƒ๊ด€์—†์ด ์›์†Œ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ๋Š” ๋ณ„๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด, ํ•˜๋‚˜๋ฅผ ์ˆ˜์ •ํ•ด๋„ ๋‹ค๋ฅธ ํ•˜๋‚˜์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์ด Arrays.asList()์™€ ArrayList ์ƒ์„ฑ์ž๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด๊ณผ ๋ฆฌ์ŠคํŠธ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ๊ณ ์ • ํฌ๊ธฐ ๋ฆฌ์ŠคํŠธ ๋˜๋Š” ๊ฐ€๋ณ€ ํฌ๊ธฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Leave a comment