Optional

Lab Java Advanced 30 points

Write static Optional<String> findUser(int id) over the users {1: ann, 2: bob, 3: cy}. For each id print the user in upper case or unknown, using map and orElse.

Input

n, then n ids.

Output

n lines.

Example

Input

4
2
9
1
3

Output

BOB
unknown
ANN
CY
Sample input available Sample output available
Editor
Java

Hints

Optional.ofNullable wraps a value that might be null.

map transforms the value only if present.

Solution explanation

Optional makes "no result" explicit in the return type instead of returning null.

Show solution
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Scanner;

public class Main {
    static final Map<Integer, String> USERS = new HashMap<>();

    static {
        USERS.put(1, "ann");
        USERS.put(2, "bob");
        USERS.put(3, "cy");
    }

    static Optional<String> findUser(int id) {
        return Optional.ofNullable(USERS.get(id));
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            System.out.println(findUser(sc.nextInt()).map(String::toUpperCase).orElse("unknown"));
        }
    }
}
Output
Answer
HOME LEARN COMMUNITY DASHBOARD