Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
java:lru-cache 2007/12/12 17:59 | java:lru-cache 2020/01/22 20:59 aktuell | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | [[java|Java - Allgemein]]\\ | ||
====== Java - Least-Recently-Used (LRU) Cache ====== | ====== Java - Least-Recently-Used (LRU) Cache ====== | ||
Hier wird ein Cache definiert, welcher 50 Elemente aufnehmen kann. Wird das 51-ste Element hinzugefügt, so wird das Element gelöscht auf welches am Längsten nicht zugegriffen wurde. | Hier wird ein Cache definiert, welcher 50 Elemente aufnehmen kann. Wird das 51-ste Element hinzugefügt, so wird das Element gelöscht auf welches am Längsten nicht zugegriffen wurde. | ||
<code java> | <code java> | ||
- | public class LRUCache{ | + | public class LRUCache { |
public static final int MAX_ENTRIES = 50; | public static final int MAX_ENTRIES = 50; | ||
private Map cache; | private Map cache; | ||
Zeile 15: | Zeile 16: | ||
} | } | ||
</code> | </code> | ||
+ | \\ | ||
+ | <html> | ||
+ | <script type="text/javascript"><!-- | ||
+ | google_ad_client="pub-9681858985507948"; | ||
+ | google_ad_width = 468; | ||
+ | google_ad_height = 60; | ||
+ | google_ad_format = "468x60_as"; | ||
+ | google_ad_type = "text"; | ||
+ | google_ad_channel = ""; | ||
+ | google_color_border = "cccccc"; | ||
+ | google_color_bg = "FFFFFF"; | ||
+ | google_color_link = "1d2d8c"; | ||
+ | google_color_text = "000000"; | ||
+ | google_color_url = "1d2d8c"; | ||
+ | //--> | ||
+ | </script> | ||
+ | <script type="text/javascript" | ||
+ | src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> | ||
+ | </script> | ||
+ | </html> | ||
+ | \\ | ||
+ | \\ | ||
Der LRUCache kann nun wie eine normale Map verwendet werden: | Der LRUCache kann nun wie eine normale Map verwendet werden: | ||
<code java> | <code java> | ||
cache.put("key", myObject); | cache.put("key", myObject); | ||
- | |||
Object o = cache.get("key"); | Object o = cache.get("key"); | ||
</code> | </code> | ||
Zeile 25: | Zeile 46: | ||
Falls der Cache von mehreren Threads verwendet werden soll, so muss dieser synchronisiert werden: | Falls der Cache von mehreren Threads verwendet werden soll, so muss dieser synchronisiert werden: | ||
<code java> | <code java> | ||
- | cache = (Map)Collections.synchronizedMap(cache); | + | cache = (Map) Collections.synchronizedMap(cache); |
</code> | </code> | ||