분류 전체보기
-
[IntelliJ] 상수 추출 private으로 설정하기우아한 테크코스/테크코스 2020. 3. 13. 14:48
Alt + Command + C를 누르면 상수를 추출할 수 있는데, public으로 자동 추출을 하여 private으로 바꿔주기가 귀찮아졌다. 상수 추출시 private을 기본 접근제어자로 설정하려면 위같은 창이 나타났을 때(Alt + Command + C를 눌렀을 때), 한번 더 Alt + Command + C를 누르면 상수 추출 창이 뜨는데, 여기서 private을 선택해두면 된다. 엄청 간단한데 찾기 귀찮아서 매번 바꾸고 있었다는게 좀 허탈하다.
-
Stream(스트림) - 8. 스트림의 변환Java 2020. 3. 11. 22:34
스트림 -> 기본형 스트림 // Stream -> IntStream mapToInt(ToIntFunction mapper) // Stream -> LongStream mapToLong(ToLongFunction mapper) // Stream -> DoubleStream mapToDouble(ToDoubleFunction mapper) 기본형 스트림 -> 스트림 // IntStream -> Stream // LongStream -> Stream // DoubleStream -> Stream boxed() // IntStream/LongStream/DoubleStream -> Stream mapToObj(DoubleFunction mapper) 기본형 스트림 -> 기본형 스트림 // IntStream ->..
-
Stream(스트림) - 7. Collector 구현 (최종연산 3/3)Java 2020. 3. 11. 22:14
Collector 작성 Collector인터페이스를 구현 Collector Interface 직접 구현해야 하는 5개의 메서드 public interface Collector { Supplier supplier(); BiConsumer accumulator(); BinaryOperator combiner(); Function finisher(); Set characteristics(); // 컬렉터의 특성이 담긴 Set 반환 ... } characteristics()를 제외하면 모두 반환타입이 함수형 인터페이스 = 4개의 람다식 supplier() 작업 결과를 저장할 공간 제공 accumulator() 스트림의 요소를 수집(collect)할 방법 제공 스트림 요소를 어떻게 supplier가 제공한 공간에..
-
Stream(스트림) - 6. collect() (최종연산 2/3)Java 2020. 3. 11. 21:43
Collect() 최종 연산 중 가장 복잡하면서도 유용하게 활용될 수 있음 스트림의 요소를 수집하는 최종 연산으로 reducing(리듀싱)과 유사함 매개변수의 타입이 Collector : Collector를 구현한 클래스의 객체가 매개변수 - 해당 객체가 구현된 방법대로 스트림의 요소를 수집 sort()시 Comparator가 필요한 것 처럼, collect()시 Collector가 필요 Object collect(Collector collector) // Collector를 구현한 클래스의 객체를 매개변수로 /* 잘 사용되지는 않지만, Collector 인터페이스를 구현하지 않고 간단히 람다식으로 수집할 때 사용하면 편리 */ Object collect(Supplier supplier, BiConsum..
-
Stream(스트림) - 5. 최종 연산 1/3Java 2020. 3. 10. 22:04
최종 연산 최종 연산은 스트림의 요소를 소모해서 결과를 만들어 냄 = 최종 연산 후에는 스트림이 닫히고 사용할 수 없음 최종 연산의 결과 = 스트림 요소의 합과 같은 단일 값 or 스트림이 담긴 배열 또는 컬렉션 forEach(), count(), ... collect() 등이 있음 forEach() peek()과 달리 스트림의 요소를 소모하는 최종 연산 반환 타입은 void이므로 스트림의 요소를 출력하는 용도로 많이 사용됨 - forEach 사용 지양 참고 void forEach(Consumer
-
Stream(스트림) - 4. Optional<T> & OptionalIntJava 2020. 3. 10. 21:16
Optional(JDK 1.8~) Optional : 제네릭 클래스로 "T타입의 객체"를 감싸는 래퍼 클래스, Optional타입의 객체에는 모든 타입의 참조변수를 담을 수 있음 public final class Optional { private final T value; // T타입의 참조변수 ... } 최종 연산의 결과 타입이 Optional인 경우 최종 연산의 결과를 그냥 반환하는 것이 아닌 Optional 객체에 담아서 반환하는 것 객체에 담아서 반환하면, 반환한 결과가 null인지 체크하는 대신 Optional에 정의된 메서드를 통해서 간단히 처리할 수 있음 널 체크를 위한 if문 없이도 NullPointerException이 발생하지 않는 보다 간결하고 안전한 코드를 작성하는 것이 가능해짐 O..
-
Stream(스트림) - 3. 스트림 중간 연산Java 2020. 3. 9. 22:10
스트림 자르기 - skip(), limit() skip()과 limit()은 스트림의 일부를 잘라낼 때 사용 Stream skip(long n) // 처음 n개의 요소를 건너 뜀 Stream limit(long maxSize) // 스트림의 요소를 maxSize만큼 제한 예시) 10개의 요소를 가진 스트림에 skip(3)과 limit(5)를 순서대로 적용하면 4번째 요소부터 5개의 요소를 가진 스트림이 반환됨 IntStream intStream = IntStream.rangeClose(1, 10); // 1 ~ 10의 요소를 가진 스트림 intStream.skip(3).limit(5).forEach(System.out::print); // 45678 기본형 스트림에도 skip()과 limit()이 정의되..
-
[Git] Remote(원격) Repo 송수신우아한 테크코스/테크코스 2020. 3. 9. 17:02
Remote Repository local Repository와 다른 Repo를 의미 (GitHub의 Repo 등) 다른 개발자와 함께 작업하는 경우, Remote Repo가 변경이 잦으므로 수시로 push & pull을 해주면 충돌을 줄이는데 도움 GitHub에 Remote Repo 만들기 로컬 레파지토리가 이미 있을 경우, README는 생성하지 말 것 - 생성시 Local Repo와 맞지 않는 부분이 생기고, 변경 사항을 덮어씌워야 하는 불편함이 있음 git remote add : Remote repo 등록 Local Repo의 Remote Repo를 등록할 때는 git remote add 명령을 사용 origin이라는 식별자가 git@github.com:jamie9504/git-test.git을 ..