在Java中,HashMap是一種用于存儲鍵值對的數據結構。它不是線程安全的,因此在多線程環境下可能會出現問題。為了處理數據流,我們可以使用以下方法:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
Map<String, String> synchronizedHashMap = Collections.synchronizedMap(hashMap);
// 添加數據
synchronizedHashMap.put("key1", "value1");
synchronizedHashMap.put("key2", "value2");
// 讀取數據
System.out.println("key1: " + synchronizedHashMap.get("key1"));
}
}
import java.util.concurrent.ConcurrentHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> concurrentHashMap = new ConcurrentHashMap<>();
// 添加數據
concurrentHashMap.put("key1", "value1");
concurrentHashMap.put("key2", "value2");
// 讀取數據
System.out.println("key1: " + concurrentHashMap.get("key1"));
}
}
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("key1", "value1");
hashMap.put("key2", "value2");
hashMap.put("key3", "value3");
// 使用Stream API過濾并映射數據
Map<String, String> filteredMap = hashMap.entrySet().stream()
.filter(entry -> entry.getValue().startsWith("v"))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
// 輸出過濾后的映射
System.out.println(filteredMap);
}
}
這個例子中,我們首先使用entrySet().stream()將HashMap轉換為一個Stream,然后使用filter()方法過濾出值以"v"開頭的鍵值對,最后使用collect()方法將過濾后的鍵值對收集到一個新的HashMap中。