List를 Map으로 변환하기 Map map=postResponsedtoList.stream() .collect(Collectors.toMap(P -> P.getId().toString(), Function.identity())); stream()은 데이터 소스를 추상화하고, 다양한 연산을 이용해 복잡한 작업들을 간단히 처리할 수 있다. 스트림은 내부 반복으로 작업을 처리한다. public static Collector toMap(Function JAVA 2022.07.27
Map을 List로 변환해서 PageImpl에 담기 Map postDto=postService.findAll(); int len_postDto=postDto.size(); int start=(int) pageable.getOffset(); int end = Math.min((start + pageable.getPageSize()), len_postDto); Page page=new PageImpl(new ArrayList(postDto.values()).subList(start, end), pageable, len_postDto); Map 타입 postDto의 값을 ArrayList에 담아서 리스트를 생성한다. LinkedList는 데이터가 많을수록 접근성이 떨어지기 때문에 ArrayList를 선택했다. subList로 start에서 end까지 자른다.(.. JAVA 2022.07.27
Build gradlew.bat clean build 폴더 삭제 gradlew.bat build 빌드 cd build/libs 최상위 루트에서 jar 파일이 있는 곳으로 이동 java -jar .jar jar 파일 실행 아래는 예시 java -jar Bulletin-Board-0.0.1-SNAPSHOT.jar 참고 👇 https://dev-coco.tistory.com/68 [Spring Boot] Gradle jar 빌드 및 배포하기 Spring Boot에는 내장 서버가 있어 실행 가능한 jar 파일을 만들어 배포하기가 쉽습니다. Spring Boot + Gradle 프로젝트를 생성하면 기본 jar 를 배포할 수 있도록 설정이 되어있습니다. jar를 빌드하는 방 dev-coco.tistory.com JAVA 2022.04.29
[Error] Exception in thread "main" java.lang.UnsupportedClassVersionError: Docker로 run을 하려니까 이런 에러가 떴다. 클래스 파일은 15 버전으로 컴파일 되었는데 자바 버전이 더 낮아서 안 맞다는 내용이다. Dockerfile에서 버전을 15로 바꾸니까 해결 FROM openjdk:15 첨엔 검색해서 나온 글 따라서 인텔리제이 속성을 바꿔봤지만 안 됨. Dockerfile의 버전이 문제였던 것이다. 참고 👇 https://exerror.com/class-has-been-compiled-by-a-more-recent-version-of-the-java-environment/ [Solved] Class has been compiled by a more recent version of the Java Environment - Exception Error To Solve Cl.. JAVA/Error 2022.04.15
Character boolean isDigit(char ch) 문자가 숫자인지를 true/false로 반환 int compare(char x, char y) 두 문자를 비교 반환값이 0이면 x와 y가 같다 0보다 작으면 x y 참고 👉 https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#compare-char-char- Character (Java Platform SE 8 ) Returns the int value that the specified character (Unicode code point) represents. For example, the character '\u216C' (the Roman numeral fift.. JAVA 2021.10.24
stream 스트림은 배열이나 컬렉션 등을 모두 같은 방식으로 다룰 수 있게 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 🧡 스트림의 특징 1. 데이터 소스를 변경하지 않는다. 2. 일회용이다. 3. 작업을 내부 반복으로 처리한다. 내부 반복은 반복문을 메서드의 내부에 숨길 수 있는 것이다. forEach()는 매개변수에 대입된 람다식을 데이터 소스의 모든 요소에 적용 🦔 스트림 생성 Stream Collection.stream() 컬렉션의 스트림 생성 T는 Integer 또는 String 같은 타입 Collection에는 list, set 같은 컬렉션 IntStream IntStream.of(int... values) IntStream IntStream.of(int[]) I.. JAVA 2021.10.13
char char ch='A'; 문자의 유니코드(정수)가 저장된다. 변수 ch에 65가 저장된다. 아래 코드는 위와 같다. char ch=65; 어떤 문자의 유니코드를 알고 싶으면 int code=(int)ch;// 65 참고 👉 자바의 정석 3판 JAVA 2021.09.07
StringTokenizer java.util 패키지에 있음 StringTokenizer는 문자열을 구분자로 나누는 클래스다. token은 쪼개진 문자열이다. StringTokenizer 객체명=new StringTokenizer(String str); StringTokenizer 객체명=new StringTokenizer(String str, String delim); 📌 메소드 int countTokens() 남아있는 token의 개수 반환 String nextToken() String 타입으로 다음 token을 반환 참고 👉 https://reakwon.tistory.com/90 JAVA 2021.09.01
Scanner import java.util.*; util 패키지를 import한다. Scanner sc=new Scanner(System.in); 공백을 기준으로 입력값을 구분한다. useDelimiter 메소드를 사용해서 구분자를 바꿀 수 있다. int i=sc.nextInt(); 입력값을 nextInt를 사용해 int타입으로 가져온다. JAVA 2021.08.29
자바 정규표현식 import java.util.regex.Matcher; import java.util.regex.Pattern; Matcher와 Pattern 클래스를 import Pattern pattern=Pattern.compile("패턴"); Matcher matcher=pattern.matcher(문자열); 문자열에서 패턴에 일치하는 문자열을 추출 🍯 Matcher 메소드 boolean find() 패턴과 일치하는 다음 subsequence가 있는지 String group(int group) 해당하는 그룹의 문자열 반환 참고 👉 java document JAVA 2021.08.29