HashMap<Character, Integer> map = new HashMap<>();
문자로 자르기
char ch = s.charAt(i);
키값 존재하는지 확인하기
map.containsKey(ch)
맵에 키값과 내용넣기
map.put(ch, i);
맵에서 키값에 따른 내용불러오기
map.get(ch);
자바와 자바스크립트는 엄연히 다른언어이다.
자바 스크립트의 사전이 JSON이다.
자바스크립트의 let은 자바와는 다르게 문자, 문자열, 정수형이 다된다
let num = 10;
let isAdult = num > 11; //boolean
console.log(num +name);//무자 +숫자하면 둘 모두 문자로 묶습니다.
console.log(isAdult)//false
예외처리 Vaild(정규식) 예외때 발생하는 MethodArgumentNotValidException예외를 @ExceptionHandler(MethodArgumentNotValidException.class)로 실행하고 클래스에
extends ResponseEntityExceptionHandler면 중복오류가 났는데 그이유는 상속받는 ResponseEntityExceptionHandler클래스에서도 @ExceptionHandler로 MethodArgumentNotValidException.class를 잡아주고있기 때문이다 그렇기 때문에 같이 쓰려면 ResponseEntityExceptionHandler클래스에서 만들어둔 handleMethodArgumentNotValid 메소드를 override해서 원하는 대로 바꾸어 사용하면된다.. 참고로 MethodArgumentNotValidException의 메시지만 가져다가 String값에 넣어주고 싶다면 ex.getFieldError().getDefaultMessage()이렇게 해주면된다
스프링 예외처리 원리
예외에 따른 대처방법 3가지
1. 예외복구
예외가 발생하면 그 예외를 잡아서 일정 시간만큼 대기하고 다시 재시도를 반복한다.
그리고 최대 재시도 횟수를 넘기면 예외를 발생시킨다.
2.예외처리 회피
예외가 발생하면 throws를 통해 처리하지 않고 호출한쪽으로 예외를 던지고 그 처리를 회피하는 것이다.
[ Spring의 예외 처리 흐름 ]
LocalDateTime startDateTime=LocalDateTime.now().minusDays(3);//3일전
LocalDateTime endDateTime=LocalDateTime.now().minusDays(1); //1일전
return memoRepository.findAllByModifiedAtBetweenOrderByModifiedAtDesc(startDateTime, endDateTime);
PriorityQueue 우선순위-큐를 사용하여 하는것이며 오름차순으로 정렬되며
맨 앞에 있는 데이터를 우선적으로 꺼냅니다.(오름차순 정렬시 가장 작은수부터 내림차순 정렬시 가장 큰숫자부터)
import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
PriorityQueue<Integer> queue = new PriorityQueue<>();
for(int num=0; num<score.length;num++) {
queue.add(score[num]);
if(queue.size()<=k) {
answer[num]=queue.peek();
}else {
queue.remove();
answer[num]=queue.peek();
}
}
return answer;
}
}
class Solution {
public long solution(int price, int money, int count) {
long answer = -1;
answer = (long)price*count*(count+1)/2 - money;
return answer<=0?0:answer;
}
}
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
Arrays.sort(score);
//for(int i = m-1; i <score.length; i *= m){
// answer += score[i] * m;
//}
for(int i = score.length; i >= m; i -= m){
answer += score[i - m] * m;
}
return answer;
}
}
1.제목과 본문을 한 줄 띄워 분리하기
커밋 메시지는 50자 이내의 요약문장과 빈 줄 하나, 그리고 설명문으로 구성하면 좋다는 내용입니다.
Derezz the master control program
MCP turned out to be evil and had become intent on world domination.
This commit throws Tron's disc into MCP (causing its deresolution)
and turns it back into a chess game.
7.본문은 어떻게보다 무엇을, 왜에 맞춰 작성하기
제목을쓰고 한줄을 비운다음에 내용을쓰는데
이 커밋을 하면서 이파일을 왜 생성하였고 이파일에 메소드는 무엇을 위하여 작성하였는지 그런내용을 써줘야 다음에 봤을때 자기가 알거나 다른사람도 이해할수있다.
.gitignore.txt 텍스트 파일안에 tention.txt를 적어준다면
깃에서는 이 파일을 무시하고 지나가 커밋이 되지 않는다.
넣어야한다면 .gitignore.txt에서 삭제해주면된다.