Today I Learned/Java15 [Java] BiFunction과 ToIntBiFunction의 차이 최근에 BiFunction을 사용해 볼 기회가 있었는데 관련 내용을 좀 더 찾아보다가 ToIntBiFunction과 함께 비교해보면 좋을 것 같아 이렇게 정리를 해보려고 한다. 우선 두 인터페이스는 둘 다 Java의 함수형 인터페이스로서, 두 개의 입력 값을 받아 하나의 출력 값을 반환하는 기능을 한다. 가장 큰 차이점은 반환값의 타입이 다르다는 점이다.1. BiFunction다양한 결과를 반환할 수 있는 다목적 함수형 인터페이스BiFunction는 두 개의 입력 값(T, U)을 받아 원하는 타입(R)의 결과를 반환한다.R 타입은 제한이 없기 때문에, 문자열, 숫자, 객체 등 무엇이든 반환할 수 있다.// 메서드 시그니처R apply(T t, U u);// 예시: 두 숫자를 문자열로 합치는 작업BiFun.. 2024. 11. 24. [JUnit] 테스트 관련 어노테이션 정리 #1 이번에 천천히 TDD 공부를 해보면서 사용해봤던 테스트 관련 어노테이션을 정리해보려고 한다. 이렇게라도 한번 적지 않으면 그냥 계속 사용방법만 아는채로 사용하기 때문이다. 1. @TestJUnit5의 기본 테스트 메서드 어노테이션해당 메서드가 테스트 메서드임을 명시한다.메서드의 반환 타입이 void여야 하고, 파라미터를 받지 않는다.@Testvoid testAddition() { int result = Calculator.add(1, 2); assertEquals(3, result);} 2. @DisplayName테스트 메서드의 이름을 설명하는 어노테이션테스트를 더 직관적으로 이해할 수 있도록 이름을 지정할 수 있다.IDE에서 표시되는 이름으로, 한글이나 특수문자 사용도 가능하다.@Tes.. 2024. 10. 13. [Java] FilenameUtils 사용하기 Utils는 아는만큼 더 빠르고 간편하게 코드를 작성할 수 있는 것 같다. 하나하나 일일이 찾아보지는 못하니까 우연히 알게되면 나중에 사용할 수 있도록 정리를 해보려고 한다. 오늘의 주인공은 FilenameUtils이다. 개념우선 FilenameUtils가 들어있는 Apache Commons IO는, 자바 언어를 위한 오픈소스 라이브러리로 다양한 기능을 제공한다. 이 라이브러리를 사용하면 파일 및 디렉토리 관리 작업을 더욱 쉽게 처리할 수 있으며, 그 때문에 다양한 자바 프로젝트에서 많이 사용되고 있다. FilenameUtils 클래스는 파일 경로, 파일명, 확장자 등을 다루기 위한 여러 유틸리티 메서드를 제공한다. 특히 Windows에서는 \를, Unix 계열 시스템에서는 /를 경로 구분자로 사용하는.. 2024. 10. 13. [Java] Utility Class 의문자바에서 말하는 Utility Class가 무엇일까? 뭔가 디렉토리상에도 자주 보이고, 가끔 내가 사용하기도 하지만 구체적으로 어떤 역할을 하는지, 어떤 형식을 가지는지 잘 몰랐기 때문에 정리해보려고 한다.답(1) 유틸리티 클래스란?인스턴스 메서드와 인스턴스 변수를 제공하지 않고, 매개 변수에 대해 작업을 수행하는 정적 메서드와 변수만을 제공하는 클래스Static 클래스, Stateless로 사용, 멀티스레드 환경에서 thread-safe대부분 final로 선언되어 상속될 수 없고, 생성자는 private으로 선언되어 초기화 가능성을 막는다(2) 유틸리티 클래스 사용 시 문제점강한 결합유틸클래스를 사용하는 클래스는 유틸클래스에 강한 의존성을 갖게 된다. 추상화 진행이 없으므로 유틸클래스 변화는 해당 .. 2023. 4. 23. [Java] HashSet HashSetSet자바의 인터페이스의 한 종류 (ADT = abstract data type = 인터페이스)그 인터페이스를 구현한 class = data structure (자료구조)중복을 허용하지 않는다순서를 보장하지 않는다method = add, contains, delete 등Set 종류(1) hashSet - 순서를 보장하지 않는다(2) sortedSet - 순서를 보장한다Hash Set 구현 방법HashSet의 구현은 HashMap을 활용해서 구현이 되어 있다Hash Mapkey : valuekey는 중복이 되지 않는다그러므로 HashSet은 HashMap의 Key부분을 활용한다.참고 : https://www.youtube.com/watch?v=1Hxm6f33VbY 2023. 3. 10. [Java Code] Map 정렬문제 상황회사코드에서 로컬 디렉토리에서 파일들의 이름을 하나씩 가져와서 새로 선언한 hashMap에 넣는 로직이 있었는데, 분명 디렉토리에서는 제대로 된 정렬로 가져오는데 put 할때는 뒤죽박죽으로 저장이 되었다.원인hashmap은 정렬이 안된다. 넣은 순서대로 저장되지않고 뒤죽박죽이다.해결정렬을 지키고 싶으면 linkedHashMap을 사용하면 된다.linkedHashMap이란?Map 인터페이스를 구현한 클래스 중 하나로, put을 통해 입력한 순서를 기억하는 자료구조이다. (LinkedHshMap에 저장되는 키와 값은 Map.Entry 클래스를 구현한 Node 클래스에 저장된다. Node 클래스에는 before, after 멤버가 있는데, LiknkedhashMap에 입력된 순서에 따라 연결리스트 구조를 .. 2023. 2. 13. 이전 1 2 다음