Java 시간 측정 메소드

long start = System.currentTimeMillis()
long end = System.currentTimeMillis()
print (end - start)  // ms


'IT > JAVA' 카테고리의 다른 글

Java에서 용법이 비슷한 메소드에 대한 정리  (0) 2018.07.20

String, StringBuilder, StringBuffer

String : immutable (변경 불가능)

  - String 변수의 값을 수정하면, 매번 새로운 상수값이 할당됨.
  - String의 이런 비효율적인 문제를 해결하는 방법 --> StringBuilder, StringBuffer

StringBuilder : mutable (변경 가능) 
  - append() 메소드 사용.
  - 멀티 스레딩에서 동기화 안됨. 그래서 좀더 빠르다.

StringBuffer : mutable (변경 가능)
  - append() 메소드 사용.
  - 멀티 스레딩에서 동기화 됨. 그래서 좀더 느리지만 안전하다.


[입출력] Scanner와 BufferedReader

Scanner : 편하지만 느리다. (백만개 입력 시 2.5 초)
BufferedReader : 빠르지만 사용법이 번거롭다.  (백만개 입력 시 0.5초 걸림)
  - 일반적인 사용법 : 한 줄을 통째로 입력받음. (readLine())
  - 입력을 int 로 변경하는 방법: int b = Integer.parseInt(br.readLine())
  - or (char) br.read()
- 참고: 출력 내용이 2줄 이상이 넘어가면, 여러 번 출력하지 말고 StringBuilder 에 담아 한번에 출력하면 시간이 절약된다.



[정렬] Comparable과 Comparator

Comparable : 클래스의 기본 정렬 기준을 설정하는 인터페이스 .
Comparator : 기본 정렬 기준과는 다르게 정렬하고 싶을 때 사용하는 클래스.
Comparable 인터페이스
 - 정렬 수행 시 기본적으로 적용되는 정렬 기준이 되는 메서드를 정의해 놓는 인터페이스.
 - Comparable 인터페이스를 구현한 뒤, 내부에 있는 compareTo() 메소드를 원하는 정렬 기준대로 구현한다.
  - compareTo() : 리턴이 양수이면, 자리바꿈 수행, 0 이나 음수이면 자리바꿈 안함.
 - java.lang.Comparable
 - 자바에서 제공되는 정렬이 가능한 클래스는 모두 Comparable 인터페이스를 구현하고 있으며, 정렬 시에 Comparable 구현에 맞춰 정렬된다. ( Ex Arrays.sort() )

Comparator 클래스 
  - 정렬 가능한 클래스 (Comparable이 구현된 클래스) 들의 기본 정렬 기준과는 다른 방식으로 정렬하고 싶을 때 사용한다.
  - Comparator 클래스를 생성하여, 내부에 compare() 메서드를 원하는 정렬 기준대로 구현한다.
  - java.util.Comparator
  - 주로 익명클래스(new Comparator(){…}) 로 사용되며, 기본적으로 오름차순이 정렬 기준인 것을 내림차순으로 정렬하는 등의 용도로 사용된다.


'IT > JAVA' 카테고리의 다른 글

JAVA 메소드 실행 시간 측정  (0) 2018.07.20

+ Recent posts