[Java] 배열, for-each문, ArrayList, 예외 처리

sm·2023년 3월 14일
0

Web

목록 보기
20/24

배열

  • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
//배열 선언
int[] intArray;
char[] charArray;

//배열 생성
int[] intArray = new int[10];
char[] charArray = new char[20];

//배열 초기화
int[] intArray = {1,2,3,4,5}

배열 출력

  • for 문 활용
for (int i=0; i<intArray.length; i++) {
	System.out.print(intArray[i] + " ");
}
  • Arrays 클래스의 toString 메소드 활용
    • Array클래스는 배열을 다루기 위한 다양한 메소드가 포함되어 있음

      import java.util.Arrays;
      
      System.out.println(Arrays.toString(intArray));

2차원 배열

public static void main(String[] args) {
		int[][] arr1 = {{0,1,2}, {3,4,5}};
		int[][] arr2 = new int [2][3];
		
		for(int[] arr: arr1) {
			for(int value: arr) {
				System.out.print(value + " ");
			}
			System.out.println("");
		}
		
		int num = 0;
		for(int i=0; i<arr2.length; i++) {
			for(int j=0; j<arr2[i].length; j++) {
				arr2[i][j] = num;
				num++;
			}
		}
		
		for(int[] arr: arr2){
			for(int value: arr) {
				System.out.print(value + " ");
			}
			System.out.println("");
		}
	}
}
		//0 1 2
		//3 4 5

for-each문

  • 배열의 각 원소에 순차적으로 접근하는데 유용한 for 문
for ( int value: intArray) {
	System.out.print(value + " ");
}

ArrayList 클래스

: 자바 배열의 단점: 크기를 미리 지정해주어야 한다는 점! 그러나 모든 상황에서 길이를 알고 있지 않다. 그 경우 ArrayList를 사용한다.

  • 표준 배열보다 조금 느릴 수 있지만, 배열에서 많은 조작이 필요할 때 유용하게 사용되는 클래스
  • 크기를 미리 정하지 않아도 되는 배열 ⇒ 표준 배열보다 조금 느릴 수는 있지만 배열에 많은 조작이 필요할 때 유용한 클래스, 크기를 미리 정하지 않아도 되는 배열
import java.util.ArrayList;

ArrayList<Integer> arrayList1 = new ArrayList<>();
ArrrayList<String> arrayList2 = new ArrayList<>();
ArrayList<Double> arrayList3 = new ArrayList<>();

ArrayList 메소드

  • add(element): ArrayList 맨 뒤에 element 추가
  • add(index, element): index위치에 element 삽입
  • addAll(ArrayList): Arraylist뒤에 Arraylist 추가
  • size(): ArrayList 길이 리턴
  • get(index): index에 해당되는 요소 리턴
import java.util.ArrayList;	
...
		ArrayList<Integer> arr1 = new ArrayList<>();
		ArrayList<Integer> arr2 = new ArrayList<>();
		
		for(int i=1; i<6; i++) {
			arr2.add(i);
		}
		
		//arr1맨 뒤에 2추가
		arr1.add(2); // 2
		//0번째 인데스에 1추가
		arr1.add(0,1); // 1 2 
		//arr1 요소 뒤에 arr2 추가
		arr1.addAll(arr2); // 1 2 1 2 3 4 5
		//1번째 인덱스 요소 제거
		arr1.remove(1);
		//요소 모두 제거
		arr1.clear();
		
		for (int value: arr1){
			System.out.print(value + " ");
		}
		
		//length => .size()사용
		//arr1[i] => arr1.get(i) 사용
		System.out.println("");
		for (int i=0; i<arr1.size(); i++) {
			System.out.print(arr1.get(i) + " ");
		}
		
		//요소의 인덱스 반환 
		System.out.println("");
		System.out.println("index of 2 : "+arr1.indexOf(2));
  • indexOf(params): params와 같은 첫번째 요소의 index리턴 없으면 -1 리턴
  • remove(index): index의 요소 삭제
  • clear() : 모든 요소 삭제

예외 처리

  • 컴파일 오류와 다르다.
    • 컴파일 오류는 문법에 맞지 않게 작성된 코드가 있을 때 발생!
    • 컴파일 할때 발견되기 때문에 코드가 실행조차 되지 않음.
  • 예외란 프로그램 실행 중에 의도치 않는 결과가 나오는것
  • 예외를 처리하고 방지하는 것 ⇒ 예외 처리

예외가 발생하는 경우

  • 숫자를 0으로 나누는 경우(ArithmeticException)
  • 배열의 인덱스 범위를 벗어나는 경우(ArrayIndexOutOfBoundsException)
  • 정수를 입력받도록 작성한 코드에 문자열을 입력한 경우(InputMismatchException)
    • import 필요
    • import java.util.InputMismatchException;

try-catch-finally

try {
	//예외가 발생할 가능성이 있는 실행문 
}
catch (처리할 예외 타입 선언) {
	//예외 처리문
}
finally  {
	//예외 발생 여부와 상관없이 무조건 실행되는 문장
	//생략 가능
}
profile
📝 It's been waiting for you

0개의 댓글