[JAVA] 자바 - Array(배열)

이진규·2024년 6월 27일

자바

목록 보기
2/6
post-thumbnail

❗️ 배열의 생성

자바는 배열을 선언할때 미리 공간의 길이를 지정해야함
추후에 배열의 크기를 변경하고 싶을때는 새로 만들거나 copy해서 사용

# 생성자 방식
# 1차원 배열
int arr = new int[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

# 2차원 배열 [세로()][가로()]
int[][] arr = new int[3][4];

# 리터럴 방식
int[] arr = {1,2,3};

❗️ 배열의 출력

System.out.println() 을 이용해 배열을 그대로 출력하게 되면
배열의 객체 주소값을 가리키고 있기때문에 주소값 출력

1. 루프문을 통해 직접 배열 원소 출력
for (int i = 0 ;i < arr.length;i++){
	System.out.println(arr[i]);
}
2. Arrays클래스의 toString 메소드를 이용
# 1차원 배열
System.out.println(Arrays.toString(arr));
# 2차원 배열
System.out.println(Arrays.deepToString(arr));

👉 다만 char형 배열의 경우 println으로 바로 출력 가능

❗️ 배열의 복사

고정된 크기를 가지는 배열의 크기를 변경시키고 싶을때 주로 사용

1.for문으로 순회하면서 기존 배열 항목 복사
int[] arr1 = {1,2,3};
int[] arr2 = new int[arr1.length+1];
for (int i =0 ;i < arr1.length; i++){
	arr2[i] = arr1[i];
}
arr1 = arr2; // 원래 배열을 가리키고 있던 참조변수 arr1이 arr2를 가리키도록 함

👉  for문 보다 메소드가 2배 정도 빠른 속도로 복사

2. Arrays클래스의 copyOf 메소드를 이용
int[] arr1 = {1,2,3};
int[] arr2 = new int[arr1.length+1];
arr2 = Arrays.copyOf(arr1,arr1.length*2); // 길이로 복사
arr2 = Arrays.copyOfRange(arr1,1,3); // 범위로 복사

3. System클래스의 arraycopy	메소드를 이용
System.arraycopy(arr1,0,arr2,0,arr1.length);

❗️ 배열의 정렬

1. 오름차순 정렬
Arrays.sort(arr);

2. 내림차순 정렬 - Collections 클래스 이용
Arrays.sort(arr,Collections.reverseOrder());
👉 오류가 나는 경우 배열 선언시 int[]가 아닌 Integer[]로 변경

3. 일정구간 정렬
Arrays.sort(arr,0,3);

❗️ 배열의 비교

단순히 for문을 순회해서 비교할 수 도 있지만 Arrays 클래스 이용

String[] arr1 = {"A","B"};
String[] arr2 = {"C","B"};

# 1차원 배열
Arrays.equals(arr1,arr2); // false

# 2차원 배열
Arrays.deepEquals(arr1,arr2);
profile
웹 개발자

0개의 댓글