배열1[] = 배열2[];
이런 경우에는 배열2의 주소를 배열1에 넣어서 같은 주소를 공유하게 되므로
이렇게 num2배열의 idx2값을 5로 변경하였음에도 num1배열의 값이 함께 바뀌어 idx2가 5로 출력되는것을 볼 수 있다.
때문에 얕은 복사는 두 배열을 똑같은 배열로 만들어버리는 복사인척하는 복사이다.
public class Array_Copy{
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4 };
int[] b = a.clone();
}
}
import java.util.Arrays;
public class Array_Copy{
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4 };
int[] b = Arrays.copyOf(a, a.length); // 배열 a를 처음부터 끝나는점까지 copyOf!
}
}
import java.util.Arrays;
public class Array_Copy{
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4 };
int[] b = Arrays.copyOfRange(a, 1, 3);
// 배열 a를 idx1부터 idx3까지 copyOf!
}
}
public class Array_Copy{
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4 };
int[] b = new int[a.length];
System.arraycopy(a, 0, b, 0, a.length);
// 지정된 배열을 대상 배열의 지정된 위치에 복사
}
}
System.out.println(points.get(2));
이런식으로 .get메서드를 잘 이용하면 원하는 idx의 값을 출력하거나 값을 변수로 저장할 수 있다.
System.out.println(points.contains(1)); --> 콘솔출력: true
System.out.println(points.indexOf(1)); ---> 1값이 있는 idx를 출력한다.