mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
start java
This commit is contained in:
59
rootfs_overlay/lkmc/java/LinkedHashMapCheat.java
Normal file
59
rootfs_overlay/lkmc/java/LinkedHashMapCheat.java
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
# LinkedHashMap
|
||||
|
||||
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html
|
||||
|
||||
Hash map that is iterable in insertion order.
|
||||
|
||||
Application LRU cache:
|
||||
|
||||
- https://github.com/haoel/leetcode/pull/90/files
|
||||
- http://stackoverflow.com/questions/23772102/lru-cache-in-java-with-generics-and-o1-operations
|
||||
|
||||
This is a sub-case of a binary heap: it is efficient
|
||||
when every item update makes it either the most recent, or oldest.
|
||||
For more general binary heap, the new item can go anywhere.
|
||||
|
||||
# removeEldestEntry
|
||||
|
||||
Example:
|
||||
https://github.com/cirosantilli/haoel-leetcode/commit/ff04930b2dc31f270854e40b560723577c7b49fd
|
||||
|
||||
Only acts on `put`, `get` does not update values for us.
|
||||
*/
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Iterator;
|
||||
|
||||
public class LinkedHashMapCheat {
|
||||
public static void main(String[] args) {
|
||||
LinkedList<Integer> output;
|
||||
LinkedList<Integer> expected;
|
||||
Iterator<Integer> it;
|
||||
|
||||
LinkedHashMap<Integer,Integer> m = new LinkedHashMap<>();
|
||||
assert m.put(2, -2) == null;
|
||||
assert m.put(1, -1) == null;
|
||||
assert m.put(3, -3) == null;
|
||||
output = new LinkedList<>();
|
||||
expected = new LinkedList<>();
|
||||
expected.add(2);
|
||||
expected.add(1);
|
||||
expected.add(3);
|
||||
for (int i : m.keySet())
|
||||
output.add(i);
|
||||
assert output.equals(expected);
|
||||
|
||||
it = m.keySet().iterator();
|
||||
it.next();
|
||||
it.remove();
|
||||
output = new LinkedList<>();
|
||||
expected = new LinkedList<>();
|
||||
expected.add(1);
|
||||
expected.add(3);
|
||||
for (int i : m.keySet())
|
||||
output.add(i);
|
||||
assert output.equals(expected);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user