CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ Arrays.asList() ๋ฉ”์„œ๋“œ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ Arrays.asList() ๋ฉ”์„œ๋“œ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๋งŽ์€ ์ดˆ๋ณด์ž๋“ค์ด Arrays.asList() ๋ฉ”์„œ๋“œ์˜ ๊ฐœ๋…์„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ArrayList์™€ ํ˜ผ๋™ํ•ฉ๋‹ˆ๋‹ค. ๋น„์Šทํ•˜๊ฒŒ ๋ณด์ด๊ณ  ๋“ค๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๋‘˜์€ ๊ตฌํ˜„์— ์žˆ์–ด ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” Arrays.asList() ๋ฉ”์„œ๋“œ ์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ ๋‹ค๋ฃจ๊ณ  ์ด์™€ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ํ˜ผ๋ž€์„ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Arrays.asList()๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ชฉ๋ก์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๋ฐฐ์—ด์ด ์žˆ๋Š” ๊ฒฝ์šฐ java.util.Arrays๋Š” ์ด ๋ชฉ์ ์„ ์œ„ํ•ด ๋ž˜ํผ Arrays.asList()๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์ด ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋„์ž…๋˜๊ธฐ ์ „์— Java ํ”Œ๋žซํผ API์˜ ์ฃผ์š” ๋ถ€๋ถ„์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋•Œ๋•Œ๋กœ ์ „ํ†ต์ ์ธ ๋ฐฐ์—ด๊ณผ ๋ณด๋‹ค ํ˜„๋Œ€์ ์ธ ์ปฌ๋ ‰์…˜ ๊ฐ„์— ๋ณ€ํ™˜ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ปฌ๋ ‰์…˜๊ณผ ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ API ์‚ฌ์ด์˜ ๋งํฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.Java์˜ Arrays.asList() ๋ฉ”์„œ๋“œ - 1

์˜ˆ

๋‹ค์Œ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class ArraysAsListDemo {
    public static void main(String[] args) {

	String[] teamMembers = {"Amanda", "Loren", "Keith"};
      // using aslist() method
	List teamList = Arrays.asList(teamMembers);
	System.out.println("List : " + teamList);
		
	HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
	System.out.println("HashSet : " + teamHashSet);
    }
}
์‚ฐ์ถœ:
List : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet์€ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Arrays.asList()์™€ ArrayList๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๊นŒ?

๋ฐฐ์—ด์—์„œ Arrays.asList() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐ˜ํ™˜๋œ ๊ฐ์ฒด๋Š” ArrayList ( List ์ธํ„ฐํŽ˜์ด์Šค์˜ ํฌ๊ธฐ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋ฐฐ์—ด ๊ตฌํ˜„ ) ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค . ๊ธฐ๋ณธ ๋ฐฐ์—ด์— ์•ก์„ธ์Šคํ•˜๋Š” get() ๋ฐ set() ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๋ณด๊ธฐ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค . ์—ฐ๊ฒฐ๋œ ๋ฐ˜๋ณต์ž์˜ add() ๋˜๋Š” remove()์™€ ๊ฐ™์ด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” UnsupportedOperationException ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค . Java ํ”„๋กœ๊ทธ๋žจ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ปดํŒŒ์ผ๋˜์ง€๋งŒ Runtime Exception์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ๋ถ„๋ช…ํžˆ "List"๊ฐ€ ๋‹ค์Œ์˜ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.Arrays.asList() . ๋ชจ๋“  ์ถ”๊ฐ€/์‚ญ์ œ ์ž‘์—…์ด ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ํฌ๊ธฐ ์กฐ์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ "๋ฐฐ์—ด" ์ด๋ฏ€๋กœ ๋Ÿฐํƒ€์ž„์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์Šค๋‹ˆํŽซ์ž…๋‹ˆ๋‹ค.

import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
   public static void main(String[] args) {
	Integer[] diceRoll = new Integer[6];	
      //using aslist() method
	List diceRollList = Arrays.asList(diceRoll);
	System.out.println(diceRollList);
	
	// using getters and setters to randomly access the list	
	diceRollList.set(5, 6);	
	diceRollList.set(0, 1);	
	System.out.println(diceRollList.get(5));
	System.out.println(diceRollList.get(1));

	System.out.println(diceRollList);
	
	diceRollList.add(7); // Add a new Integer to the list
    }
}
์‚ฐ์ถœ:
[null, null, null, null, null, null] 6 null [1, null, null, null, null, 6] "main" ์Šค๋ ˆ๋“œ์˜ ์˜ˆ์™ธ java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList. java:148)์—์„œ java.util.AbstractList.add(AbstractList.java:108)์—์„œ ArraysAsListDemo.main(ArraysAsListDemo.java:20)

asList() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ ์˜ˆ

Java SE 5.0๋ถ€ํ„ฐ asList() ๋ฉ”์„œ๋“œ๋Š” ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ๊ฐ–๋„๋ก ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•˜๋Š” ๋Œ€์‹  ๊ฐœ๋ณ„ ์š”์†Œ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
    public static void main(String[] args) {
	List seasons = Arrays.asList("winter", "summer", "spring", "fall");
	List odds = Arrays.asList(1, 3, 5, 7, 9);

	System.out.println(seasons);
	System.out.println(odds);
    }
}
์‚ฐ์ถœ:
[๊ฒจ์šธ, ์—ฌ๋ฆ„, ๋ด„, ๊ฐ€์„] [1, 3, 5, 7, 9]

๊ฒฐ๋ก 

Arrays.asList()๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ž์‹ ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ๋ž˜ํผ ๋ฉ”์„œ๋“œ์ผ ๋ฟ์ด๋ผ๋Š” ์ ์„ ๋ช…์‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ArrayList์™€ ํ˜ผ๋™ํ•˜์ง€ ๋ง๊ณ  "๋ชฉ๋ก"์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์‹ญ์‹œ์˜ค. ์ฒ˜์Œ์—๋Š” ์ถ”๊ฐ€/์ œ๊ฑฐ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๊ด€๋œ ์—ฐ์Šต๊ณผ ์ดํ•ด๋กœ ๋ชจ๋‘ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ IDE๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ›Œ๋ฅญํ•œ ํ•™์Šต ๊ฒฝํ—˜์„ ํ•˜์‹ญ์‹œ์˜ค!
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION