Java(56)
-
Comparator<T> Interface 란?
지난번에는 Comparable에 대해 알아보았습니다. 그 과정에서 Integer.compare() 메서드를 사용했었는데요, 이 부분에 대해 의문이 생길 수 있다 생각이 되었고, 저 또한 그러한 이유에서 공부했었기 때문에 정리해봅니다. 먼저 compare() 메서드는 매개변수로 들어오는 두 요소를 비교해주는 기능을 제공합니다. Comparable에서 사용한 compareTo() 메서드와 이름이 비슷하여 했갈릴 수 있습니다. 하지만 compare()는 두개의 요소를 비교하는데 사용되고 compareTo() 메서드는 받은 인자와 자신을 비교하는데 사용됩니다. 그리고 compare() 메서드를 사용하기 위해 사용되는 것이 Comparator 인터페이스 입니다. 비교하고자 하는 객체의 클래스를 T로 지정하고 어떻..
2023.02.11 -
Comparable<T> Interface란?
저는 백준 11650, 11651번 문제를 해결하기 위해 이것저것 찾아보다가 발견하게 되었습니다. 보통 이 문제의 해결 과정을 찾아보면 2차원 배열을 사용하여 정렬하는 방법을 알려주긴 합니다. Q. Comparable란? A. Collections의 sort() 메서드를 위해 사용되는 인터페이스입니다. 즉, Comparable를 implements 하는 것으로 Collections.sort()의 정렬 기준을 재정립 할 수도 있습니다. 일반적으로 컴퓨터에서 데이터의 비교는 비교연산자를 통해 손쉽게 가능합니다. 때문에 sort() 메서드는 이러한 과정을 통해 컬렉션의 내부 요소를 비교하고 정렬합니다. 하지만 만약 비교하고자 하는 대상이 기본 자료형이 아는 객체일 경우에는 애로사항이 발생하게 됩니다. 예시로 ..
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 -
7주차 - javaFX (7) DTO, DAO, Service, Controller, Main 으로 역할 나누기
지난 javaFX (6) 까지는 메인클래스, 컨트롤러클래스 두가지로 구분지어 코드를 작성하는 것까지 해보았습니다. 이번글의 목표 1) DAO, DTO, Service, Contoller, Main 으로 기능별로 클래스를 구분지어 만들어보자. 2) 로그인 화면, 회원가입 화면, 유저 화면 을 만들고 기능을 추가해보자. 3) Opener 클래스를 만들어서 화면을 열어주는 메서드를 작성해보자. 4) CommonService 클래스를 만들어서 모든 클래스에서 공통적으로 사용될 메서드를 이번에 만든 클래스는 아래와 같습니다. 01.CommonService.java : 모든 클래스에서 공통적으로 사용할 메서드를 모아둔 클래스 02.Opener : 화면 전환해주는 클래스 03.LoginContoller : 로그인 화..
2022.09.08 -
7주차 - javaFX (6) action
오늘의 목표 01. 객체에 메서드를 실행하는 액션을 적용해보자 javaFX (6)에서는 객체에 ID를 지정하고 ID를 이용하여 속성을 부여하는 것을 해보았습니다. 여기서는 객체에 메서드를 실행하는 액션을 부여하는 것을 해볼것입니다. 01. Main 클래스 코드 02. Controller 클래스 코드 03. fxml 코드04. 실행 화면 01. Main 클래스의 코드 public class Ex3 extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { FXMLLoader loader = new FXMLL..
2022.09.07