본문 바로가기

Java69

[Java] 프로그래머스 [Level-1] 이상한 문자 만들기 public class Solution { // 이상한 문자 만들기 public static String solution(String s) { String answer = ""; StringBuilder sb = new StringBuilder(); int checkNum = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ' ') { sb.append(s.charAt(i)); checkNum = 0; // 공백일 경우 홀수 대문자화 초기화 continue; } if (checkNum % 2 == 0) { // 대문자의 대상 sb.append(String.valueOf(s.charAt(i)).toUpperCase()); checkNum++; }.. 2022. 11. 25.
[Java] Equals & HashCode == : 동일성 비교(객체 인스턴스의 주소 값을 비교) equals() : 동등성 비교(객체 내부의 값을 비교) hashCode() : 객체의 메모리 번지를 이용해서 해시코드를 만들고 그 값을 리턴(객체마다 다른 값을 가지고 있다.) hashCode()를 사용하는 이유 중 하나는, 객체를 비교할 때 드는 비용을 낮추기 위함이다. 자바에서 2개의 객체가 같은지 비교할 때 equals()를 사용하는데, 여러 객체를 비교할 때 equals()를 사용하면 Integer를 비교하는 것에 비해 많은 시간이 소요된다. hashCode() 메소드를 실행하여 리턴된 해시코드 값이 다르면 다른 객체로 판단하고, 해시코드 값이 같으면 equals() 메소드로 두 객체를 다시 비교한다. 즉, 여러 객체의 동등성 비교를 할 때.. 2022. 11. 25.
[Java] Exception public class ExceptionOccurred { // Checked Exception : RuntimeException을 상속받지 않은 클래스 // Unchecked Exception : RuntimeException을 상속받은 클래스 // throw : 강제로 예외를 발생시킬 수 있음 단, 발생시킨 예외를 catch문에서 잡을 수 있는 처리가 되어있지 않으면 오류 발생(catch문의 Exception은 모든 예외를 잡을 수 있음) // throws : 예외 발생 시 자신을 호출한 상위 메소드로 예외를 던짐(특정 상위 메소드에서 예외를 한 번에 처리하는 경우가 있을 수 있음, 계속 throws로 던질 경우 최종적으로 JVM이 처리를 하게 되지만, 권장하지 않음) // 중요 : RuntimeEx.. 2022. 11. 25.
[Java] Comparable & Comparator Comparable : 현재 객체와 다른 객체의 비교 기준을 정함 => Comparable - CompareTo (T o) 정의 Comparator : 두 객체의 비교 기준을 정함 => Comparator - Compare(T o1, T o2) 정의 public class Node implements Comparable { private int index = 0; // 노드의 번호 private int distance = 0; // 노드의 거리 private String name = ""; // 노드의 이름 public Node(int index, int distance, String name) { this.index = index; this.distance = distance; this.name = n.. 2022. 11. 25.
[Java] 연산자 // 비트 연산자 System.out.println(1 100000 // 32 System.out.println(2 1000000 // 64 System.out.println(10 >> 1); // 1010 -> 101 // 5 System.out.println(10 >> 2); // 1010 -> 10 // 2 System.out.println(1 1001 // 9 System.out.println(1 1101 // 13 System.out.println(13 ^ 9); // 1101 ^ 1001 // 모두 같으면 0, 다르면 1로 => 100 // 4 System.out.println(~13); // ~1101 // 8비트로 만든 후 0과 1 바꿈 => 00001101 => 11110010 // -1.. 2022. 11. 25.
[Java] Stack, Queue, Deque import java.util.ArrayDeque; import java.util.Deque; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class DequeSample { // Stack, Queue, Deque public static void main(String[] args) { // TODO Auto-generated method stub Deque stack1 = new ArrayDeque(); // addFirst + removeFirst // 스택 stack1.addFirst(1); stack1.addFirst(2); stack1.addFirst(3); //stack1.add(4); .. 2022. 11. 25.