๋ง์ ์ด๋ณด์๋ค์ด Arrays.asList() ๋ฉ์๋์ ๊ฐ๋
์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ArrayList์ ํผ๋ํฉ๋๋ค. ๋น์ทํ๊ฒ ๋ณด์ด๊ณ ๋ค๋ฆด ์ ์์ง๋ง ์ด ๋์ ๊ตฌํ์ ์์ด ์์ ํ ๋ค๋ฆ
๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ Arrays.asList() ๋ฉ์๋ ์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ๋ค๋ฃจ๊ณ ์ด์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ํผ๋์ ํด๊ฒฐํ ๊ฒ์
๋๋ค.
Arrays.asList()๊ฐ ์ฌ์ฉ๋๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ชฉ๋ก์ผ๋ก ๋ณํํด์ผ ํ๋ ๋ฐฐ์ด์ด ์๋ ๊ฒฝ์ฐ java.util.Arrays๋ ์ด ๋ชฉ์ ์ ์ํด ๋ํผ Arrays.asList()๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋จํ ๋งํด์ ์ด ๋ฉ์๋๋ ๋ฐฐ์ด์ ๋งค๊ฐ ๋ณ์๋ก ์ฌ์ฉํ๊ณ ๋ชฉ๋ก์ ๋ฐํํฉ๋๋ค. ์ปฌ๋ ์ ํ๋ ์์ํฌ๊ฐ ๋์ ๋๊ธฐ ์ ์ Java ํ๋ซํผ API์ ์ฃผ์ ๋ถ๋ถ์ด ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋๋๋ก ์ ํต์ ์ธ ๋ฐฐ์ด๊ณผ ๋ณด๋ค ํ๋์ ์ธ ์ปฌ๋ ์ ๊ฐ์ ๋ณํํด์ผ ํ ์๋ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ปฌ๋ ์ ๊ณผ ๋ฐฐ์ด ๊ธฐ๋ฐ API ์ฌ์ด์ ๋งํฌ ์ญํ ์ ํฉ๋๋ค.์
๋ค์ ์๋ฅผ ์ดํด๋ณด์ญ์์ค.
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]
GO TO FULL VERSION