Java/java(25)
-
Comparator<T> Interface 란?
지난번에는 Comparable에 대해 알아보았습니다. 그 과정에서 Integer.compare() 메서드를 사용했었는데요, 이 부분에 대해 의문이 생길 수 있다 생각이 되었고, 저 또한 그러한 이유에서 공부했었기 때문에 정리해봅니다. 먼저 compare() 메서드는 매개변수로 들어오는 두 요소를 비교해주는 기능을 제공합니다. Comparable에서 사용한 compareTo() 메서드와 이름이 비슷하여 했갈릴 수 있습니다. 하지만 compare()는 두개의 요소를 비교하는데 사용되고 compareTo() 메서드는 받은 인자와 자신을 비교하는데 사용됩니다. 그리고 compare() 메서드를 사용하기 위해 사용되는 것이 Comparator 인터페이스 입니다. 비교하고자 하는 객체의 클래스를 T로 지정하고 어떻..
2023.02.11 -
StringBuilder의 사용방법
백준 2751번 문제를 풀다가 시간 초과로 문제를 풀지못했습니다. 그래서 제가 알고 있는 방법으로는 도저히 이 문제를 해결할 방법을 찾지 못해서 결국 검색을 해봤습니다. 결과적으로 이 문제를 풀기위한 키포인트는 두가지가 있었습니다. Arrays.sort()가 아닌 Collections.sort() 사용하기. StringBuilder를 사용하기 Arrays.sort()와 Collections.sort()의 작동 원리가 서로 다르고 결과적으로 Collections.sort()가 더 빠르다고합니다. 그리고 StringBuilder는 처음 사용해보는 클래스여서 이번에 공부하게 되었습니다. 원래 String 클래스로 만든 문자열은 변경이 불가합니다. 그리고 이를 연산하는 과정도 메모리를 많이 사용하게 되어 성능의..
2023.02.08 -
StringTokenizer VS split() 둘을 비교해보자
※ 지식이 많이 부족하여 이론적인 부분이 이해도 어렵고 설명도 주관적인게 많습니다. 틀린부분은 지적해주시면 감사하겠습니다. 백준 골드를 목표로 공부하면서 1152번 문제에서 막혀서 잠깐 구글링했습니다. 이정도 수준에서 못풀어서 검색하는 스스로가 안타까울뿐입니다. 원래 저는 split하기전에 문자열의 첫번째 글자와 마지막 글자가 공백인지 확인하고 이를 지우고 그 다음에 split으로 나눠주는 방법으로 문제를 해결하고자 했습니다. 하지만 자꾸만 에러가 발생하여 문제를 해결하지 못했고...결국엔 구글링의 힘을 빌어 해결했습니다. 그래서 얻은 해답이 바로 StringTokenizer 입니다. StringTokenizer은 문자열을 토큰화 하는 클래스 입니다. 조금더 쉽게 말하면 문자열을 어떠한 기준에 따라 나누..
2023.02.07 -
4주차 - 메서드 method (2) , 스태틱 메서드 static method
static 메서드는 생성자를 사용하지 않아도 바로 사용이 가능하다. 일반적인 메서드는 인스턴스 생성후, 클래스 내부에 있는 메서드를 부른다. 이 과정에서 클래스는 heap 영역에 저장된다. 하지만 static은 따로 생성을 하지 않아도 처음부터 static 영역에 별도로 저장된다. 나도 아직도 모든 흐름을 완벽하게 이해한것이 아니라 설명이 빈약하지만 static 메서드는 바로 이용이 가능하다는 것만 알아두자. 아래는 스태틱 메서드를 만드는 예시 public class Print { public static void printArr() { System.out.println(); } public static void printArr(int[] arr) { for (int i : arr) { System.o..
2022.09.03 -
4주차 - 메서드 method (1)
메서드란 객체 지향 프로그래밍에서 객체와 관련된 서브 루틴 (또는 함수) 출처 : 위키백과 - 메소드 나같은 초보들이 이해하기에 사전적 정의는 이해하기 어렵다.쉽게 이해하자면 클래스 내부에 있는 기능들을 부르는 명칭이 메서드이다. 아래는 클래스에서 메서드를 만드는 예시 import java.util.ArrayList; public class SubClass02 { //method1() 이라는 메서드를 만드는 구문 public void method1() { System.out.println("SubClass 멤버로 구성된 method1"); } // method2() 라는 메서드를 만드는 구문 public static void method2() { System.out.println("SubClass1 멤버..
2022.09.03 -
4주차 - 상속 inheritance (5), 인터페이스 interface
실제 현업에서 코드는 여럿이서 함께 작성하게 된다. 이때에 정해진 규칙, 규격이 없이 무작정 시작하게 된다면 각자 서로 다른 코드를 작성하게 될것이다. 그렇기 때문에 하나의 규격을 정하는 것이 바로 interface 이다. interface는 실제로 기능을 하는 것이 아니기 때문에 클래스가 아니다. 일반적으로 클래스의 생성시에는 public class 클래스 이름{} 이 되지만 인터페이스의 생성은 public interface 인터페이스 이름{} 이 된다. 클래스와 인터페이스는 서로 다른 것임을 했갈리지 말자. 아래는 인터페이스의 생성 public interface Parent { void method02(); void method03(); } 인터페이스의 규격을 이용하기 위해서는 implements 라..
2022.09.03