포스코x코딩온 웹 풀스택 양성과정
[포스코x코딩온] 웹 풀스택 과정 16주차 회고 | JAVA 배열과 예외처리
Codult
2024. 4. 5. 15:31
728x90

배열
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다.
📌 배열 생성 (선언, 생성, 초기화)
단일 배열
- 배열의 타입을 지정하여 선언한다.
- 처음 선언한 배열의 크기는 변경할 수 없다.
// 배열 선언
int[] intArr;
char[] charArr;
// 배열 생성
int[] intArr = new int[10];
char[] charArr = new char[20];
// 배열 초기화
int[] intArr = {1, 2, 3, 4, 5};
2차원 배열
행열 형태의 2차원 배열을 생성할 수 있다.
int[][] intArray;
char[][] charArray;
double[][] doubleArray;
int[][] intArray = new int[2][5];
char[][] charArray = new char[5][5];
double[][] doubleArray = new double[5][2];
int intArray[][] = {{0,1,2}, {3,4,5}, {6,7,8}};
char charArray[][] = {{'a','b','c'}, {'d','e','f'}};
double doubleArray[][] = {{0.01,0.02}, {0.03,0.04}};
📌 Arrays 메서드
- copyOf(arr, copyArrLength)
: 지정한 길이만큼 첫번째 인덱스부터 배열을 복사하여 새로운 배열로 반환한다. - copyOfRange(arr, sIdx, eIdx)
: 시작, 끝 인덱스를 지정하여 특정 범위를 복사하여 새로운 배열로 반환한다. - fill(arr, n)
: 배열의 모든 요소를 동일한 값(n)으로 채워준다. - toString(arr)
: 배열을 문자열로 변환하여 반환한다. - sort(arr)
: 배열 내의 요소들을 오름차순으로 정렬한다.
※ 오름차순 정렬
int[] sortArr1 = {0, 100, 1, 2, 3, 4};
Arrays.sort(sortArr1);
※ 내림차순 정렬: Integer[]형으로 지정해야 한다.
Integer[] sortArr2 = {0, 1, 2, 3, 4};
Arrays.sort(sortArr2, Comparator.reverseOrder());
- equals(arr1, arr2)
: 두 배열의 각각의 요소 값이 동일한지 비교하여 true/false 반환한다. (같은 인덱스에 같은 값이 있을 때만 true) - deepEquals(arr1, arr2)
: 단일 차원 or 다차원 배열인 두 배열이 같은지 비교하여 true/false 반환한다. - binarySearch(arr, val)
: 특정 값이 배열에 존재하는지 검색 하여, 해당 인덱스 위치를 반환한다.
(이진 검색 알고리즘을 사용하므로, 매개변수로 전달되는 배열이 sort()등을 통해 미리 정렬되어 있어야 제대로 동작함)
📌 배열 출력
- for문, forEach 문 등을 활용하여 하나씩 출력할 수 있다.
- Arrays 클래스의 toString 메서드를 활용하여 전체 출력할 수 있다.
import java.util.Arrays;
.
.
.
System.out.println(Arrays.toString(intArr));
📌 ArrayList 클래스
크기를 미리 정하지 않아도 되는 배열이며, ArrayList 메서드로 배열에서 많은 조작을 할 수 있어 유용하다.
import java.util.ArrayList;
.
.
.
ArrayList<Integer> arrayList1 = new ArrayList<>();
ArrayList<String> arrayList1 = new ArrayList<>();
ArrayList 메서드
- add(element)
: ArrayList 맨 뒤에 element를 추가한다. - add(idx, element)
: 지정한 index 위치에 element를 삽입한다. - addAll(ArrayList)
: ArrayList 뒤에 ArrayList를 추가한다. - size()
: ArrayList의 길이를 반환한다. - get(idx)
: 지정한 index에 해당하는 요소를 반환한다. - indexOf(params)
: params와 동일한 첫번째 요소의 index를 반환한다. (없으면 -1을 반환한다.) - remove(idx)
: 지정한 index의 요소를 삭제한다. - clear()
: ArrayList 내의 모든 요소를 삭제한다.
📌 예외 처리
예외는 프로그램 실행 주 의도치 않는 결과가 나오는 것을 의미하며, 이러한 예외를 처리하고 방지하는 것을 '예외 처리'라고 한다. (문법에 맞지 않게 작성된 코드로 인해 컴파일 시에 발견되는 컴파일 오류와 다름)
예외가 발생하는 경우 (대표적인 예)
- 숫자를 0으로 나누는 경우 : ArithmeticException
- 배열의 인덱스 범위를 벗어나는 경우: ArrayIndexOutOfBoundsException
- 정수를 입력받도록 작성한 코드에 문자열을 입력한 경우: InputMismatchException) - 이 예외를 처리하기 위해서는 import가 필요하다.
import java.util.InputMismatchException;
예외 처리 (try-catch-finally)
- try: 예외가 발생할 가능성이 있는 실행문을 입력한다.
- catch: 처리할 예외 타입을 선언하고, 예외 처리문을 입력한다.
- finally: 예외 발생 여부와 상관없이 무조건 실행되는 문장을 입력한다. (생략 가능)
try {
int num1 = 4;
int num2 = 0;
System.out.println(num1 + " / " + num2 + " = " + (num1/num2));
}
catch (ArithmeticException e){
System.out.println("0으로 나누어 예외가 발생하였습니다.");
}
System.out.println("예외가 발생하였지만, 여기까지 읽히네!");
728x90