Array

1. 배열 초기화 및 선언

  • 정적 크기 배열 선언 및 초기화:

int[] arr = new int[5];  // 길이가 5인 배열 (기본값 0)
  • 배열 선언과 동시에 초기화:

int[] arr = {1, 2, 3, 4, 5};  // 배열 선언과 동시에 초기화

2. 배열 복사

  • System.arraycopy()를 사용한 배열 복사:

int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5);  // src 배열을 dest 배열로 복사
  • Arrays.copyOf()를 사용한 배열 복사:

int[] src = {1, 2, 3};
int[] copy = Arrays.copyOf(src, 5);  // src 배열을 길이 5로 복사

3. 배열 정렬

  • 배열 오름차순 정렬 (Arrays.sort()):

int[] arr = {3, 1, 4, 1, 5};
Arrays.sort(arr);  // 오름차순 정렬
  • 배열 내림차순 정렬:

Integer[] arr = {3, 1, 4, 1, 5};
Arrays.sort(arr, Collections.reverseOrder());  // 내림차순 정렬

4. 배열 탐색

  • 이진 탐색 (Arrays.binarySearch()):

int[] arr = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(arr, 3);  // 3이 있는 위치 반환 (인덱스 2)

5. 배열의 최소값과 최대값 찾기

  • 최소값 찾기:

int[] arr = {3, 1, 4, 1, 5};
int min = Arrays.stream(arr).min().getAsInt();  // 최소값 1
  • 최대값 찾기:

int max = Arrays.stream(arr).max().getAsInt();  // 최대값 5

6. 배열을 문자열로 변환

  • 배열을 문자열로 출력 (Arrays.toString()):

int[] arr = {1, 2, 3};
String arrStr = Arrays.toString(arr);  // "[1, 2, 3]"

7. 배열 전체 값 초기화

  • 배열의 모든 값을 특정 값으로 채우기 (Arrays.fill()):

int[] arr = new int[5];
Arrays.fill(arr, 1);  // 모든 값을 1로 채움

8. 배열 역순 정렬

  • 배열을 역순으로 뒤집기:

int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length / 2; i++) {
    int temp = arr[i];
    arr[i] = arr[arr.length - 1 - i];
    arr[arr.length - 1 - i] = temp;
}

9. 2차원 배열 생성 및 사용

  • 2차원 배열 선언 및 초기화:

int[][] matrix = new int[3][3];  // 3x3 배열 선언
  • 2차원 배열 초기화와 동시에 선언:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
  • 2차원 배열 순회:

for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[0].length; j++) {
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();
}

10. 배열 합계 구하기

  • 배열의 모든 원소의 합 구하기:

int[] arr = {1, 2, 3, 4, 5};
int sum = Arrays.stream(arr).sum();  // 합계 15

11. 배열 요소 중복 제거

  • 배열의 중복 요소를 제거하고 Set으로 변환:

int[] arr = {1, 2, 2, 3, 4, 4, 5};
Set<Integer> set = new HashSet<>();
for (int num : arr) {
    set.add(num);  // 중복이 제거된 Set 생성
}

12. 배열에서 특정 요소 찾기

  • 배열에서 특정 값이 존재하는지 확인:

int[] arr = {1, 2, 3, 4, 5};
boolean contains = IntStream.of(arr).anyMatch(x -> x == 3);  // true

13. 배열을 리스트로 변환

  • 배열을 리스트로 변환 (Arrays.asList()):

String[] arr = {"apple", "banana", "cherry"};
List<String> list = Arrays.asList(arr);  // 배열을 리스트로 변환

14. 리스트를 배열로 변환

  • 리스트를 배열로 변환 (toArray()):

List<String> list = Arrays.asList("apple", "banana", "cherry");
String[] arr = list.toArray(new String[0]);  // 리스트를 배열로 변환

15. 부분 배열 복사

  • 배열의 일부분을 복사 (Arrays.copyOfRange()):

int[] arr = {1, 2, 3, 4, 5};
int[] subArray = Arrays.copyOfRange(arr, 1, 4);  // {2, 3, 4}

16. 배열의 모든 요소 비교

  • 배열의 모든 요소를 비교 (Arrays.equals()):

int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
if (Arrays.equals(arr1, arr2)) {
    System.out.println("Arrays are equal");
}

17. 배열을 큐로 변환

  • 배열을 큐로 변환 (LinkedList 활용):

사int[] arr = {1, 2, 3};
Queue<Integer> queue = new LinkedList<>();
for (int num : arr) {
    queue.add(num);
}

18. 다차원 배열의 특정 열/행 추출

  • 2차원 배열에서 특정 열을 추출:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
int[] column = new int[matrix.length];
for (int i = 0; i < matrix.length; i++) {
    column[i] = matrix[i][1];  // 두 번째 열을 추출
}

19. 배열 초기화

  • 배열 초기화 후 동적 할당:

int[] arr = new int[] {1, 2, 3};  // 배열 선언과 동시에 초기화

20. 배열 요소 교체

  • 배열의 두 요소를 교체:

int[] arr = {1, 2, 3, 4, 5};
int temp = arr[1];  // 임시 변수 사용
arr[1] = arr[3];
arr[3] = temp;

Last updated