Java - 예외,에러처리, 컬렉션

호호빵·2022년 5월 18일
0

Java

목록 보기
3/19

예외, 에러처리

  • 예외 처리의 목적 : 실행 중인 프로그램의 비정상 종료를 막기 위해
  • Throwable : 모든 예외 클래스의 부모 클래스
    ㄴ Error : 프로그램이 종료되어야하는 심각한 문제
    ㄴ Exception : 예외나 문제상황을 표현하기 위해 사용
# try - catch									알려주기
public class Main {						   ----------------
    public static void main(String[] args) throws Exception {
        int number = 10;
        int result;

        for (int i = 10; i >=0; i--) {
            try{						// 예외가 발생할 가능성 있는 코드
                result = number / i;
                System.out.println(result);
            } catch (Exception e) {		// Exception이 발생했을 경우
                System.out.println("Exception 발생 : "+ e.getMessage());
            } finally {
                System.out.println("항상 실행되는 finally 구문");
            }

        }
    }
}

10
항상 실행되는 finally 구문
Exception 발생 : / by zero
항상 실행되는 finally 구문

# try-with-resource 형식
# 입출력과 함께씀, 사용되었던 자원을 끝난 후에 닫아줘야할 때 자동으로 닫아줌

날짜와 시간

  • java.time 패키지 사용
  • Package : 클래스의 묶음, 클래스와 인터페이스를 포함시킬 수 있음
# LocalDate, LocalTime
# DateTimeFormatter 클래스

# 날짜와 시간 출력
public class Main {
    public static void main(String[] args) {
        System.out.println("now usages");
        LocalDate date = LocalDate.now();   // .now 사용, 현재 날짜
        LocalTime time = LocalTime.now();
        LocalDateTime dateTime = LocalDateTime.now();

        System.out.println(date);
        System.out.println(time);
        System.out.println(dateTime);

        System.out.println("of() usage");
        LocalDate dateOf = LocalDate.of(2022, 4, 20);  // .of 사용, 지정 날짜
        LocalTime timeOf= LocalTime.of(16, 30, 0);

        System.out.println(dateOf);
        System.out.println(timeOf);
    }
}

now usages
2022-05-18
12:49:04.163
2022-05-18T12:49:04.163
of() usage
2022-04-20
16:30


# 날짜와 시간 형식 수정
public class Main {
    public static void main(String[] args) {
        DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT);
        String shortFormat = formatter.format(LocalTime.now());
        System.out.println(shortFormat);
    }
}   오후 2:44

# 내가 원하는 형식
DateTimeFormatter myFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String myDate = myFormatter.format(LocalDate.now());
System.out.println(myDate);

2022/05/18


# 날짜와 시간 차이 계산 예제 - between() 사용
LocalDate today = LocalDate.now();
LocalDate birthday = LocalDate.of(2021, 8, 9);
Period period = Period.between(today, birthday);
System.out.println(period.getMonths());
System.out.println(period.getDays());

컬렉션

자료구조 인터페이스

컬렉션 프레임워크

  • 자료구조를 표현하고 사용하는 클래스의 집합
  • 모든 자료구조 implements Collection
list : 순서 O, 중복 O
Set : 순서 X, 중복 X
Map : key-Value, 순서 X, 키 중복 X, 값 중복 O
Stack : LIFO
Queue : FIFO
  • list
  • ArrayList : 배열을 이용하여 데이터를 저장하는 List 인터페이스
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;  // add, sort, remove

public class Main {
    public static void main(String[] args) {
        List<Integer> integerList = new ArrayList<>();
        integerList.add(1);
        integerList.add(5);
        integerList.add(4);
        integerList.add(11);

        System.out.println(integerList);   // [1, 5, 4, 11]

        Collections.sort(integerList);
        System.out.println(integerList);	// [1, 4, 5, 11]
        System.out.println(integerList.size());  // 4

        integerList.remove(1);      // 첫번째 값 4 지우기
        System.out.println(integerList);   // [1, 5, 11]

//        for (int i=0; i< integerList.size(); i++) {
//            System.out.println(integerList.get(i));
//        }
        for (int current: integerList) {    // integerList의 값을 하나하나 current로
            System.out.println(current);    // 1
        }									// 5
    }										// 11
}
  • set
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<String> stringSet = new HashSet<>();
        stringSet.add("LA");
        stringSet.add("New York");
        stringSet.add("LasVegas");
        stringSet.add("Seoul");
        System.out.println(stringSet);

        List<String> target = new ArrayList<>();
        target.add("New York");
        target.add("LA");
        stringSet.removeAll(target);
        System.out.println(stringSet);

        System.out.println("LA이 포함되어있나요? " +stringSet.contains("LA"));
        System.out.println("LasVegas가 포함되어있나요? " +stringSet.contains("LasVegas"));

    }
}
[New York, LasVegas, LA, Seoul]
[New York, LasVegas, LA]
[LasVegas]
LA이 포함되어있나요? false
LasVegas가 포함되어있나요? true
  • map
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
       Map<Integer, String> map = new HashMap<>();
       map.put(1, "apple");
       map.put(2, "berry");
       map.put(3, "cherry");

       System.out.println(map);

       System.out.println("1st in map: " + map.get(3));

       System.out.println(map.containsKey(2));
       System.out.println(map.containsValue("cherry"));

       map.clear();
        System.out.println(map);

    }
}

{1=apple, 2=berry, 3=cherry}
1st in map: cherry
true
true
{}
  • stack
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(1);
        stack.push(3);
        stack.push(7);
        stack.push(5);
        System.out.println(stack);

        System.out.println(stack.peek());
        System.out.println("size : " + stack.size());
        System.out.println(stack.pop());
        System.out.println("size : " + stack.size());

        System.out.println(stack.contains(1));
        System.out.println(stack.empty());
    }
}
[1, 3, 7, 5]
5
size : 4
5
size : 3
true
false
  • queue
import java.util.LinkedList;
import java.util.Queue;

public class Main {
    public static void main(String[] args) {
        Queue<Integer> queue = new LinkedList<>();
        queue.add(1);
        queue.add(5);
        queue.add(3);
        System.out.println(queue);
        System.out.println(queue.poll());
        System.out.println(queue);
        System.out.println(queue.peek());
        System.out.println(queue);
    }
}

[1, 5, 3]
1
[5, 3]
5
[5, 3]
  • ArrayDeque
import java.util.ArrayDeque;

public class Main {
    public static void main(String[] args) {
        ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
        arrayDeque.addFirst(1);
        arrayDeque.addFirst(2);
        arrayDeque.addFirst(3);
        System.out.println(arrayDeque);

        arrayDeque.addLast(0);
        System.out.println(arrayDeque);

        arrayDeque.offerFirst(10);
        System.out.println(arrayDeque);
        arrayDeque.offerLast(-1);
        System.out.println(arrayDeque);

        arrayDeque.push(22);
        System.out.println(arrayDeque);

        System.out.println(arrayDeque.pop());
        System.out.println(arrayDeque);
        System.out.println(arrayDeque.peek());
        System.out.println(arrayDeque);  // size, clear, isEmpty 가능
    }
}

[3, 2, 1]
[3, 2, 1, 0]
[10, 3, 2, 1, 0]
[10, 3, 2, 1, 0, -1]
[22, 10, 3, 2, 1, 0, -1]
22
[10, 3, 2, 1, 0, -1]
10
[10, 3, 2, 1, 0, -1]

profile
하루에 한 개념씩

0개의 댓글

관련 채용 정보