Java(49)
-
[Java] Scanner vs BufferedReader
결과적으로 BufferdReader가 더 유리하다. 첫번째 이유는 BufferedReader는 Scanner의 데이터를 읽을때 발생하는 문제가 없다. Scanner의 문제 - nextX에 해당하는 7개의 메소드는 개행이나 공백 전까지만 읽는다. (nextInt(), nextFloat(), nextByte(), nextShort(), nextDouble(), nextLong(), next()) - nextLine은 개행까지를 읽는다. - 만약 다음과 같은 코드가 있다고 하자. import java.util.Scanner; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(Syst..
2024.01.07 -
[Java] interface 기본 접근제한자
public이다.
2024.01.03 -
[Java] 인자로 함수를 받는 고차함수를 통해 리팩토링 하기
아래의 두 함수를 보면 내용이 상당히 겹침을 알 수 있다. 다른 부분은 InputProcessor 클래스의 메소드와 그 인자로 넣어지는 InputView의 메소드이다. 즉, 어떤 메소드를 쓰는지만 달라진다. 그렇다면 인자로 함수를 넣어줘서 두 메소드를 하나로 합칠 수는 없을까? private static int getDate() { while (true) { try { return InputProcessor.processDateInput(InputView.readDate()); } catch (IllegalArgumentException e) { System.out.println(e); } } } private static PreOrder getPreOrder() { while (true) { try {..
2023.11.13 -
[Java] Google Java Code Style Sheet에 대한 나름의 이해
license, package, import, class 순이고 한 공백라인씩 띄운다. static class가 있으면 띄워준다. 오버로딩된 메소드는 무조건 붙여서 나열한다. 메소드를 나열할 때 논리적으로 나열한다. 생성순으로 하지 않는다. 중괄호는 무조건 쓴다. 비어있거나 한문장이더라도 써라. 아래와 같은 형태로 쓴다. if (userCarsInputs.length == 0) { throw new IllegalArgumentException("하나 이상의 이름을 적으셔야 합니다."); } {}를 쓸 수 있는 경우는 try-catch와 같은 멀티블록이 아닌 비어 있는 경우이다. ------ 여기는 우테코 부분 들여쓰기 4 열제한 120 들여쓰기 지속은 최소 8 ------ 라인 래핑은 패키지, 임포트에 ..
2023.11.01 -
[Java] Test 코드 돌릴 때 input에서 no line이 뜬다면
input으로 아무것도 안넣어줘서 그렇다. 다음과 같은 코드를 감싸주면 된다. String simulatedInput = "inputValue"; System.setIn(new ByteArrayInputStream(simulatedInput.getBytes())); /* your code */ System.setIn(System.in);
2023.10.31 -
[Java] LinkedHashMap
HashMap은 put을 할때 순서를 보장하지 않는다. 순서를 보장하려면 LinkedHashMap을 이용한다.
2023.10.31