티스토리 뷰
Devolopment/JAVA
[Java] Map에서 입력받은 값의 근사치를 얻는 메서드 예제 (Find the closest value in the map.)
OpenUiz 2023. 7. 3. 10:16반응형
Java의 Map에서 입력받은 값의 근사치에 해당하는 항목을 얻어내고자 할때는 다음을 참고하세요.
import java.util.Map;
import java.util.TreeMap;
public class NearPositionExample {
public static void main(String[] args) {
Map<Integer, String> gradeList = new TreeMap<>();
gradeList.put(1, "Molly");
gradeList.put(3, "Ava");
gradeList.put(4, "Jennifer");
gradeList.put(8, "Park");
gradeList.put(15, "Nicole");
gradeList.put(22, "Jack");
String answer1 = nearNextItem(gradeList, 3.4f);
System.out.println("Answer: " + answer1); // Output: Jennifer
String answer2 = nearNextItem(gradeList, 5.2f);
System.out.println("Answer: " + answer2); // Output: Park
String answer3 = nearNextItem(gradeList, 10.0f);
System.out.println("Answer: " + answer3); // Output: Nicole
}
public static String nearNextItem(Map<Integer, String> gradeList, float number) {
int nextNumber = (int) Math.ceil(number); // Round up to the next integer
TreeMap<Integer, String> treeMap = new TreeMap<>(gradeList);
Map.Entry<Integer, String> entry = treeMap.ceilingEntry(nextNumber);
if (entry != null) {
return entry.getValue();
}
return null; // 찾지못함
}
}
위 코드는 "nearNextItem"이라는 메서드를 포함하는 "NearPositionExample"이라는 Java 클래스를 정의합니다.
이 메서드는 문자열(gradeList의 목록)과 float 숫자에 대한 integer 맵을 가져옵니다. 그런 다음 Map에서 주어진 숫자에 가장 가까운 항목을 찾고 해당 값을 문자열로 반환합니다.
먼저 "Math.ceil"를 사용하여 주어진 숫자를 가장 가까운 정수로 반올림합니다. 그런 다음 입력 Map에서 새 TreeMap을 만들고 "ceilingEntry" 메서드를 사용하여 반올림된 숫자보다 크거나 같은 가장 작은 키가 있는 항목을 Map에서 찾습니다. 적당한 항목이 있다면 해당 값을 문자열로 반환합니다. 해당 항목이 없으면 메서드는 null을 반환합니다.
반응형
'Devolopment > JAVA' 카테고리의 다른 글
사용자지정 어노테이션 생성방법. (선택적 옵션 및 추가속성 정의 방법 포함) (0) | 2023.06.20 |
---|---|
Hexadecimal과 RGB(Red, Green, Blue)로 표현된 색상을 서로 변환하거나 Decimal code로 변형하는 Java 코드 예제 (0) | 2023.06.09 |
[J2V8] Java로 만들어진 사칙연산 함수를 javascript구문을 입력받아 실행하는 예제 (0) | 2023.05.19 |
수식 문자열을 받아 사칙연산 (괄호, sqrt, abs, power 포함) 수행하는 Java Code (0) | 2023.03.10 |
lucene-analysis-nori 사전교체 방법 (0) | 2020.02.25 |
반응형
최근에 달린 댓글