배열복사 arraycopy()/Arrays.copyOf/clone
배열복사 arraycopy()/Arrays.copyOf/clone
2022.03.281. arraycopy() 새로운 배열을 생성 한 후에 System 클래스에서 arraycopy 메소드를 불려와서 사용한다. 몇번 인덱스에 몇개를 어느 위치에 넣을건지 직접 지정이 가능하다. System.arraycopy( 원본배열, 원본배열시작위치(인덱스), 복사배열, 복사배열시작위치(인덱스), 복사할 길이); copy 배열의 길이는 10이며, 4에서 9까지 인덱스에서 배열을 복사합니다. Hashcode는 주소값을 비교한다고 생각하면 됩니다. 깊은복사라서 주소값은 다르며, copy 배열의 복사가 잘 된것을 확인 할 수 있습니다. 2. Arrays.copyOf 복사본 배열 = Arrays.copyOf(원본배열,새로운배열길이); 역시 hashcode값은 다르다. 인덱스 설정이 불가능하고 원본배열의 0번 인..
배열복사
배열복사
2022.03.27배열복사에는 2가지가 있습니다. 배열 복사 1. 얕은 복사 : 배열의 주소값만 복사합니다. (같은 객체를 참조합니다.) 2. 깊은 복사 : 새로운 배열을 만들고 기존 배열에 있는 데이터를 복사합니다. 1. 얕은 복사 얕은 복사는 배열을 만들 때 주소값을 참조합니다. 즉, int [] copy =origin을 하면 다음 표와 같이 arr2가 arr1의 배열이 참조하고 있는 heap영역의 주소값만 참조한다는 뜻입니다. 그렇다면 과연 arr1에서 값이 바뀌면 arr2도 값이 바뀔까요? 정답은 주소참조라서 그렇다입니다. 2. 깊은 복사 즉 주소 참조가 아닌 각각의 인덱스를 for문을 통해서 넣어줍니다. copyp[i]= origin[i] 그렇다면 다음과 같은 깊은 복사는 주소가 아닌 하나의 heap영역에 배열 ..
배열 array 예제/최대값/최소값/문자길이,개수/
배열 array 예제/최대값/최소값/문자길이,개수/
2022.03.26예제1) 사용자에게 입력을 통해 배열에 값을 담아서 해당 배열에 가장 작은값 즉 최소값을 구하는 프로그램 작성. 배열을 받아 최대값, 최소값을 구하는 예제는 대표적 예제중 하나입니다. 배열의 크기는 5라고 가정합시다. 즉, arr[0]~arr[4]까지 입력을 받고 그 값들 중 최소값을 구합니다. For문을 통해 i=0에서 arr.length까지 arr[0]부터 받아줍니다. arr[i]=sc.nextInt();로 받습니다. 제가 항상 어려워했던 것 중 하나는 변수를 두는것입니다. 즉, 최소값을 구하던, 최대값을 구하던 그 값을 받아줄 변수를 두어야 하는것에 항상 제가 어려워했습니다. int min=1000; 즉 입력 받는 값을 0~1000까지라고 가정했습니다. 여기서 for문을 통해서 if문을 두어 min..
배열 Array
배열 Array
2022.03.25배열의 정의 변수 : 하나의 공간에 하나만 넣을 수 있습니다. 배열 : 하나의 공간에 여러개의 값을 담을 수 있습니다. 단, 같은 자료형만 담을 수 있습니다. 배열의 각 인덱스 위치에 값을 담을 수 있습니다.(방이 나뉘어져있습니다.) 각 방의 크기가 같습니다.(자료형 크기) ex) int [] : 각 인덱스방의 크기가 4byte 배열의 선언 자료형[] 배열명; ex) int[] arr1; double[] arr1; 배열의 할당 자료형[] 배열명= new 자료형[배열의 크기]; => 배열의 크기 :몇 칸짜리 배열을 만들건지 설정합니다. ex) int[] arr1; => 배열의 선언 arr1 = new int [5]; => 선언한 배열에 할당하기 /배열의 크기 : 5 int [] arr2 = new int[..