-
오늘 정리할 내용들이 무지 많네요 주말이 가까워져 그런가 공부하는데 신나는
기묘한 날이였습니다 ㅎㅎ 공부한 내용 정리하고 마치겠습니다
예외처리
항상 프로그램이 성곡적이지 않음 다양한 상황 발생등을 대응하기 위해 필요한 코드
1. 예외의 발생으로 인한 실행 중인 프로그램의 비정상 종료를 막기 위함
2. 개발자에게 알려 코드를 보완할 수 있도록 하기 위함
3. method 에서 예외 선언 = throwspublic class Main { public static void main(String[] args) { int number = 10; int result; for (int i = 10; i >= 0; i--) { try { result = number / i; System.out.println(result); }catch (Exception e) { System.out.println("Exception 발생:" + e.getMessage()); // 모든 Exception .getMessage를 가짐 }finally { System.out.println(" 항상 실행되는 finally 구문"); } } } }
public class Main { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT); // Style 규정된 스타일 선택 String shortFormat = formatter.format(LocalTime.now()); // .now : 현재 데이터 System.out.println(shortFormat); DateTimeFormatter myFormatter = DateTimeFormatter.ofPattern("yyyy년MM월dd일"); // 사용자 지정 String myData = myFormatter.format(LocalDateTime.of(2023,11,17,7,14)); // .of : 데이터 지정 System.out.println(myData); LocalDate today = LocalDate.now(); LocalDate birthday = LocalDate.of(2020,1,1); Period period = Period.between(today, birthday); // Period를 사용하여 비교 System.out.println(period.getMonths() + "달 " + period.getDays() + "일 "); } }
collection
Java에서 자료구조를 표현하는 인터페이스, 다수의 데이터를 다루기 위한 자료구조를 표현,
사용하는 클래스의 집합
List
순서가 있는 데이터의 집합, 데이터의 중복을 허용
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); integerList.add(10); System.out.println(integerList); Collections.sort(integerList); // 설정하지 않으면 기본적으로 오른쪽 부터 오름차순 System.out.println(integerList); System.out.println(integerList.size()); // python len()과 같음 integerList.remove(4); // 4번째 자리 배열 삭제 System.out.println(integerList); // for (int i = 0; i < integerList.size(); i++) { // System.out.println(integerList.get(i)); // } for (int current: integerList) { // 바로 위 for문과 같은 결과 System.out.println(current); } }
Set
순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음
public class Main { public static void main(String[] args) { Set<Integer> integerSet = new HashSet<>(); // Set: interface, HashSet: class integerSet.add(1); integerSet.add(3); integerSet.add(1); integerSet.add(2); integerSet.add(9); integerSet.add(8); System.out.println(integerSet); Set<String> stringSet = new HashSet<>(); stringSet.add("LA"); stringSet.add("LA"); stringSet.add("New York"); stringSet.add("LasVegas"); stringSet.add("San Francisco"); stringSet.add("Seoul"); System.out.println(stringSet); stringSet.remove("Seoul"); System.out.println(stringSet); List<String> target = new ArrayList<>(); // 여러개 remove 할 때 target.add("New York"); target.add("LasVegas"); stringSet.removeAll(target); System.out.println(stringSet); System.out.println("LA 포함되어 있나요? " + stringSet.contains("LA")); System.out.println("Seoul 포함되어 있나요? " + stringSet.contains("Seoul")); System.out.println(stringSet.size()); stringSet.clear(); // 자료구조를 다 지워줌 System.out.println(stringSet); } }
Map
key와 value의 쌍으로 이루어진 데이터의 집합, 순서는 유지 및 키는 중복은 허용되지 않고
값은 중복을 허용합니다.
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(1)); // get()은 inde 가 아니라 key를 받음 map.remove(2); System.out.println(map); System.out.println(map.containsKey(2)); // integer type System.out.println(map.containsValue("cherry"));// string type } }
Stack
마지막에 넣은 데이터를 먼저 꺼내는 자료구조입니다. LIFO(Last In First Out)
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()); // [1, 3, 7, 5] System.out.println(stack.pop()); // 5 System.out.println(stack.contains(1)); // 5 System.out.println(stack.empty()); // true stack.clear(); // false System.out.println(stack.isEmpty()); // true } }
Queue먼저 넣은 데이터를 먼저 꺼내는 자료구조입니다. FIFO(First In First Out)
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); // [1, 5, 3] System.out.println(queue.poll()); // 1, stack에 pop()과 같음 System.out.println(queue.size()); // 2 System.out.println(queue.peek()); // 5 } }
ArrayDequeStack, Queue class의 기능을 모두 포함하면서 성능이 좋아 많이 사용
deque : 양쪽 다 삽입 반환 자료구조
public class Main { public static void main(String[] args) { ArrayDeque<Integer> arrayDeque = new ArrayDeque<>(); arrayDeque.addFirst(1); // Queue에 문제가 생기면 exception return arrayDeque.addFirst(2); arrayDeque.addFirst(3); arrayDeque.addFirst(4); System.out.println(arrayDeque); // [4, 3, 2, 1] 다음 addFirst가 첫번째로 삽입 되서 역순 arrayDeque.addLast(0); System.out.println(arrayDeque); // [4, 3, 2, 1, 0] arrayDeque.offerFirst(10); // Queue에 문제가 생기면 false return System.out.println(arrayDeque); // [10, 4, 3, 2, 1, 0] arrayDeque.offerLast(-1); System.out.println(arrayDeque); // [10, 4, 3, 2, 1, 0, -1] arrayDeque.push(22); System.out.println(arrayDeque); // [22, 10, 4, 3, 2, 1, 0, -1] System.out.println( arrayDeque.pop()); // 22 System.out.println(arrayDeque); // [10, 4, 3, 2, 1, 0, -1] } }