[Java] 스트림(Stream) 사용 방법 및 예제 자바 스트림 (Stream) 자바의 스트림(Stream)은 'Java 8' 부터 지원되기 시작한 기능이다. 스트림은 컬렉션에 저장되어 있는 Element들을 하나씩 순회하면서 처리하는 패턴이다. 람다식과 함께 사용되면서 컬렉션에 들어있는 데이터에 대한 처리를 간결하게 표현하여 작성할 수 있다는 장점이 있다. 내부 반복자를 사용하여 병렬처리가 쉽다. Java 8 이전에는 for문이나 Iterator 를 사용하여 순회하였다. 컬렉션을 순회하며 값을 출력한다는 단순한 동작에 지저분한 코드들이 많이 생성되었다. 이때, for each 문을 사용하면 좀더 간결해진다. 1. 스트림 생성 List list = {"a", "b", "c"}; Stram stream ..
Back-End/Java 검색 결과
DTO 또는 Domain 으로 생성한 컬럼 camelcase 로 변환 DB 컬럼을 DTO 또는 Domain 으로 가져와서 사용할 때 보통 ctrl + c / ctrl + v 로 가져오기 때문에 DB 테이블에서 생성한 컬러명 그대로 나와 snakecase 로 나오게 된다. 이때, camelcase로 한번에 변환할 수 있는 정규식을 사용하면 간편하다. ([A-Za-z]+)(_([A-Za-z])([A-Za-z]+))? //찾기 \L$1\U$3\L$4 //바꾸기 ex) REG_DATE -> regDate replace 한 후에도 '_' 가 남아있을 경우가 있는데 이럴 땐 아래 정규식을 사용하자. $1\U$3\L$4 //바꾸기 ex) REG_DEPT_CODE -> regDept_code -> regDeptCode
알고리즘 문제를 푸는데 꽤나 많이 나오는 숫자 뒤집기에 대해 풀어보자. 풀이 1 숫자를 뒤집으려면 숫자를 10으로 나눈 나머지를 계속 더해줘야 한다. 더하기를 할 때, 기존 숫자에 곱하기 10을 해주어야 자릿수를 하나씩 넘길 수 있다. public int solution(int n) { int answer = 0; while (n != 0) { answer = answer * 10 + n % 10; n /= 10; } return answer; } 풀이 2 public int solution(int n) { int answer = 0; while(n > 0) { int t = tmp % 10;// 나머지 구하기 answer = answer * 10 + t; n = n / 10; } return answe..
향상된 for문 사용하기 Java 코딩할 때 가장 많이 사용하는 for문과 if문, 오늘은 for문에 대해 알아보자. 일반적인 for문 for(초기값 ; 조건식 ; 증감식) { 조건식이 참일 경우 반복 수행; } 위와 같은 문법이다. 조건식이 참일 경우에 중괄호 안의 문장들을 반복하고 거짓인 경우 반복문을 벗어나는 것이다. 처음에 초기값을 실행하며, 조건식이 참일 경우 괄호 안에 문장을 반복 실행하는 것이다. 일반적인 for문의 예시는 아래와 같다. 초기값 : 반복문에 사용될 변수를 초기화하는 부분, 처음에 1번 실행 // 초기값 for(int i=1 ; i
Optional 클래스 개념 개념 import java.util.Optional; Optional 클래스는 Java8 버전 이후로 사용하는 클래스로 Integer나 Double 클래스처럼 'T' 타입의 객체를 포장해주는 래퍼 클래스이다. 따라서 Optional 인스턴스는 모든 타입의 참조 변수를 저장할 수 있다. Optional 객체를 사용하면 예상치 못한 NullPointerException 예외로 제공되는 메소드로 간단히 회피할 수 있다. 다시 말해서 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 되는 것이다. 문법 Optional optional = Optional.empty(); System.out.println(optional); // Optional.empty..
람다 표현식 (Lambda Expression) 문법 Java 8에서 새롭게 등장한 람다 표현식에 대해 알아보자. 람다 표현식 (Lambda Expression) 나중에 한 번 이상 실행할 수 있게 전달하는 코드 블록을 뜻한다. 람다 표현식 문법 (String first, String second) -> first.length() - second.length() ▶ 매개 변수가 없는 경우 // 매개변수가 없는 메서드처럼 빈 괄호를 붙여야 한다. Runnable task = () -> { for (int i = 0 ; i first.elngth() - s..
최근댓글