저번 포스팅에서 배열에 대한 설명을 이어가겠습니다!
🚇 배열의 장점
1. 효율적인 데이터 관리
배열은 동일한 데이터 타입의 여러 값을 하나의 구조로 저장할 수 있어 데이터를 효율적으로 관리할 수 있습니다.
예를 들어, 학생의 점수나 제품의 가격 등과 같은 데이터를 배열로 관리하면 코드가 간결해지고 관리가 용이해집니다
2. 고정된 메모리 사용
배열은 고정된 크기를 가지므로 메모리를 효율적으로 사용할 수 있습니다. 배열을 초기화할 때 필요한 메모리가 한 번에 할당되므로, 메모리 관리가 용이합니다.
3. 빠른 데이터 접근
배열의 요소는 인덱스를 통해 직접 접근할 수 있으므로, 매우 빠른 데이터 접근이 가능합니다. 이는 특히 데이터의 크기가 크거나 접근이 빈번한 경우 성능 향상에 도움이 됩니다.
int[] numbers = {1, 2, 3, 4, 5};
int value = numbers[2]; // 인덱스를 통해 빠르게 접근
4. 간결한 코드
배열을 사용하면 여러 개의 변수를 하나의 배열로 관리할 수 있어 코드가 간결해집니다. 반복문을 사용하여 배열의 모든 요소에 대해 작업을 수행할 수 있으므로 코드의 반복을 줄이고 가독성을 높일 수 있습니다.
int[] scores = {90, 85, 70, 80, 95};
for (int i = 0; i < 5; i++) {
System.out.println("score: " + scores[i]);
}
print >>
socre : 90
socre : 85
socre : 70
socre : 80
socre : 95
5. 다차원 데이터 관리
배열은 다차원 배열을 통해 복잡한 데이터 구조를 관리할 수 있습니다. 예를 들어, 행렬이나 테이블 형태의 데이터를 배열로 관리하면 데이터의 구조화와 접근이 용이해집니다.
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int value = matrix[1][2]; // 2차원 배열에서 데이터 접근
6. 데이터 그룹
배열을 사용하면 논리적으로 관련된 데이터를 그룹화할 수 있습니다. 이는 데이터 처리를 체계적으로 하고, 관련된 데이터를 함께 처리하는 데 유리합니다.
String[] names = {"Alice", "Bob", "Charlie"};
int[] ages = {25, 30, 22};
// 관련된 데이터를 그룹화하여 관리
for (int i = 0; i < names.length; i++) {
System.out.println(names[i] + " is " + ages[i] + " years old.");
}
7. 표준 라이브러리와의 호환성
자바의 많은 표준 라이브러리와 API들이 배열을 사용하여 데이터를 처리합니다. 배열을 사용하면 이러한 라이브러리와 쉽게 호환될 수 있습니다.
import java.util.Arrays;
int[] numbers = {3, 1, 4, 1, 5};
Arrays.sort(numbers); // 표준 라이브러리의 메서드를 사용하여 배열 정렬
System.out.println(Arrays.toString(numbers));
print >>
[1, 1, 3, 4, 5]
🚇 배열의 유용한 메서드
배열의 길이를 구하는 length를 제외하고 다른 메서드 사용하기 위해서는 `java.util.Arrays` 클래스와 같은 유틸리티 클래스를 사용해야 합니다.
import java.util.Arrays;
1. 배열의 길이
배열의 길이를 알 수 있는 length 속성은 배열의 크기를 반환합니다. 이는 메서드가 아니라 속성(attribute)입니다.
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("배열의 길이: " + numbers.length); // 배열의 길이: 5
}
}
2. 배열의 정렬
배열을 오름차순으로 정렬합니다.
import java.util.Arrays;
int[] numbers = {5, 3, 8, 1, 2};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 2, 3, 5, 8]
3. 배열을 String으로 변환
배열의 내용을 문자열로 변환하여 저장합니다.
import java.util.Arrays;
String[] rabbits = {"pipi", "cucu", "popo", "pupu", "cici"};
System.out.println(Arrays.toString(rabbits)); // [pipi, cucu, popo, pupu, cici]
4. 배열 복사 (copyOf, copyOfRange)
배열의 모든 또는 일부 요소를 새 배열로 복사합니다.
import java.util.Arrays;
int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, original.length);
int[] partialCopy = Arrays.copyOfRange(original, 1, 3);
System.out.println(Arrays.toString(copy)); // [1, 2, 3]
System.out.println(Arrays.toString(partialCopy)); // [2, 3]
5. 배열 채우기
배열의 모든 요소를 지정한 값으로 초기화합니다.
import java.util.Arrays;
int[] numbers = new int[5];
Arrays.fill(numbers, 7);
System.out.println(Arrays.toString(numbers)); // [7, 7, 7, 7, 7]
6. 배열 비교 (equals, deepEquals)
두 배열이 같은지 비교합니다. deepEquals는 다차원 배열을 비교할 때 사용합니다.
import java.util.Arrays;
int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
int[] array3 = {4, 5, 6};
System.out.println(Arrays.equals(array1, array2)); // true
System.out.println(Arrays.equals(array1, array3)); // false
int[][] deepArray1 = {{1, 2}, {3, 4}};
int[][] deepArray2 = {{1, 2}, {3, 4}};
System.out.println(Arrays.deepEquals(deepArray1, deepArray2)); // true
7. 배열 검색
배열에서 특정 값을 이진 검색으로 찾습니다. 배열이 정렬되어 있어야 합니다.
import java.util.Arrays;
int[] numbers = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(numbers, 3);
System.out.println(index); // 2 (값 3의 인덱스)
8. 기타 등등
이 외에도 deepToString, hashCode, deppHashCode 등이 있습니다.
빈번하게 사용되는 메서드를 정리했습니다. 추후 배열로 프로그래밍하실 때 참고해 주세요.
배열은 동일한 타입의 데이터를 효율적으로 관리하게 해 줍니다.
다음 게시글에서는 배열로 구구단 만들기 실습으로 찾아뵙겠습니다.
궁금하신 점은 댓글을 남겨주세요
🩵🐰🩵
'☕Java' 카테고리의 다른 글
[Java 이해하기] 15. Java로 구구단 만들기 (2) (1) | 2024.05.24 |
---|---|
[Java 이해하기] 14. Java로 구구단 만들기 (1) (1) | 2024.05.24 |
[Java 이해하기] 12. Java의 배열 (1) (0) | 2024.05.24 |
[Java 이해하기] 11. Java로 계산기 만들기 (2) (1) | 2024.05.18 |
[Java 이해하기] 10. Java로 계산기 만들기 (1) (2) | 2024.05.18 |