欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java map和字典

Java Map和字典的介紹

Map是Java中一個(gè)基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)一組key-value的映射關(guān)系。它類似于字典,可以通過(guò)key(鍵)來(lái)獲取value(值)。Map接口是Java集合框架中的一員,提供了一系列的實(shí)現(xiàn)類,包括HashMap、TreeMap等等。
Dictionary是Java早期提供的一種數(shù)據(jù)結(jié)構(gòu),也是用于存儲(chǔ)key-value對(duì)的映射關(guān)系。它和Map概念類似,但是Dictionary是一個(gè)抽象類,只能被繼承而不能被實(shí)例化,也不支持null值的key和value。Java社區(qū)建議使用Map代替Dictionary進(jìn)行編程。
下面我們來(lái)看一些使用Map的例子:

使用Java Map實(shí)現(xiàn)Word Count

import java.util.*;
public class WordCount {
public static void main(String[] args) {
String text = "Hello World, this is a world of Java World";
String[] words = text.split(" ");
MapwordCount = new HashMap<>();
for (String word : words) {
if (wordCount.containsKey(word)) {
int count = wordCount.get(word);
wordCount.put(word, count+1);
} else {
wordCount.put(word, 1);
}
}
System.out.println(wordCount);
}
}

使用Java Map實(shí)現(xiàn)LRU Cache

import java.util.*;
public class LRUCache{
private final int capacity;
private final Mapcache;
public LRUCache(int capacity) {
this.capacity = capacity;
this.cache = new LinkedHashMap(capacity, 0.75f, true) {
@Override
protected boolean removeEldestEntry(Map.Entryeldest) {
return size() >capacity;
}
};
}
public synchronized V get(K key) {
return cache.get(key);
}
public synchronized void put(K key, V value) {
cache.put(key, value);
}
public synchronized void clear() {
cache.clear();
}
public synchronized int size() {
return cache.size();
}
@Override
public synchronized String toString() {
return cache.toString();
}
}

在上面的代碼中,我們使用了LinkedHashMap作為Map的實(shí)現(xiàn)類,并且重寫了removeEldestEntry方法,實(shí)現(xiàn)LRU緩存策略。其中LinkedHashMap中的accessOrder參數(shù)設(shè)置為true,表示按照訪問(wèn)順序排序。