Arrays.asList() 란?
일반 배열을 ArrayList로 바꿔준다.
int[] Int_Array = {1,2,3,4,5};
List<Integer> list = Arrays.asList(Int_Array);
Arrays.asList()의 리턴 값
ArrayList <>(a)를 리턴하는 모습을 알 수 있다.
여기서 ArrayList <>()는 우리가 흔히 아는 그 ArrayList Class가 아닌
Arrays class 안에 따로 정의된 private static class이다
(add 함수가 정의되어 있지 않다)
//Java Arrays.class 파일
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
Arrays.asList() 알아야 할 점
밑의 코드와 출력을 보면 asList를 해준 원본 배열까지 값이 바뀐 것을 알 수 있다.
그 이유는 asList를 이용하여 List 객체를 만들 때 원래 배열 즉 arr의 주소 값을 받아가기 때문이다.
그리하여 add를 사용한 값을 추가할 수 없는 것이다.
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main{
public static void main(String[] args) {
String[] String_arr = {"a", "b", "c"};
System.out.println(Arrays.toString(String_arr)); //[a,b,c]
List list = Arrays.asList(String_arr);
System.out.println(list); //[a,b,c]
list.set(1, "hello");
System.out.println("arr : "+ Arrays.toString(String_arr));
System.out.println("list : "+list);
}
}
//출력
[a, b, c]
[a, b, c]
arr : [a, hello, c]
list : [a, hello, c]
ArrayList에 배열을 넣으려면??
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main{
public static void main(String[] args) {
String[] String_arr = {"a", "b", "c"};
System.out.println(Arrays.toString(String_arr)); //[a,b,c]
//새로운 배열을 만들은 것과 같음
List list = new ArrayList<>(Arrays.asList(String_arr));
System.out.println(list); //[a,b,c]
list.set(1, "hello");
System.out.println("arr : "+ Arrays.toString(String_arr));
System.out.println("list : "+list);
}
}
//출력
[a, b, c]
[a, b, c]
arr : [a, b, c]
list : [a, hello, c]
Arrays.asList 사용 예제
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main{
public static void main(String[] args) {
List<Integer> know = Arrays.asList(1,2,3,4,5);
know.set(2, know.get(2)+1);
System.out.println(know);
}
}
//출력 [1, 2, 4, 4, 5]
참고한 사이트
https://m.blog.naver.com/roropoly1/22114015634
[JAVA] Arrays.asList()
일반 배열을 ArrayList로 변환한다. Arrays.asList()는 Arrays의 private 정적 클래스인 ArrayList...
blog.naver.com
https://onlyfor-me-blog.tistory.com/319
[JAVA] Iterator란? Iterator를 사용하는 이유와 사용법
먼저 iterator와 원형인 iterate의 사전적 정의가 무엇인지 확인해보자. iterate : (계산, 컴퓨터 처리 절차를) 반복하다 iterator : 반복자 계산 같은 컴퓨터의 작업 처리 절차를 반복한다는 뜻 같다. 그럼
onlyfor-me-blog.tistory.com
https://hianna.tistory.com/510
[Java] 배열 값 출력하는 2가지 방법 (반복문, Arrays.toString())
이번 포스팅에서는 반복문과 java.util.Arrays의 toString() 메소드를 이용하여 배열의 값을 출력하는 방법을 소개합니다. 먼저, 그냥 배열의 값을 출력해 볼까요? [ 코드 ] public class PrintArray { public sta..
hianna.tistory.com
'💻 Computer > 🦀 Java' 카테고리의 다른 글
[Java] Generic (0) | 2022.07.23 |
---|---|
[Java] String을 자세히 (1) | 2022.07.22 |
Java this 와 super (0) | 2022.07.17 |
(Java) 다형성 (0) | 2022.07.03 |
java 숫자인지 판별 (0) | 2022.07.02 |