Advertisement
Guest User

Grokking #232

a guest
Sep 1st, 2022
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.69 KB | None | 0 0
  1. class TimeMap {
  2.  
  3.     // key -> map of timestamp, value
  4.     Map<String, NavigableMap<Integer, String>> segments;
  5.  
  6.     public TimeMap() {
  7.         segments = new HashMap<>();
  8.     }
  9.  
  10.     public void set(String key, String value, int timestamp) {
  11.         NavigableMap<Integer, String> timeMap =
  12.             segments.computeIfAbsent(key, k -> new TreeMap<>());
  13.         timeMap.put(timestamp, value);
  14.     }
  15.  
  16.     public String get(String key, int timestamp) {
  17.         return Optional.ofNullable(segments.get(key))
  18.             .flatMap(timeMap ->
  19.                     Optional.ofNullable(timeMap.floorEntry(timestamp)))
  20.             .map(entry -> entry.getValue())
  21.             .orElse("");
  22.     }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement