【数据结构】Map和Set(Java实现)
package treemap;
import java.util.Map;
import java.util.TreeMap;
public class TestMap {
public static void main(String[] args) {
Map<String, String> map = new TreeMap<>();
//put(key,value) : 插入 key-value 键值对
map.put("林冲", "豹子头");
map.put("鲁智深", "花和尚");
map.put("武松", "行者");
map.put("宋江", "及时雨");
String str = map.put("李逵", "黑旋风");
System.out.println(map.size());
System.out.println(map);
// put(key,value): 注意key不能为空 ,但是value可以为空
// key如果为空 ,会抛出空指针异常 //(null, "花名");
str = map.put("无名", null);
System.out.println(map.size());
// put(key, value):
// 如果key存在 ,会使用value替换原来key所对应的value ,返回旧value
str = map.put("李逵", "铁牛");
// get(key): 返回key所对应的value
// 如果key存在 ,返回key所对应的value
// 如果key不存在 ,返回null
System.out.println(map.get("鲁智深"));
System.out.println(map.get("史进"));
//GetOrDefault(): 如果key存在 ,返回与key所对应的value ,如果key不存在 ,返回一个默认值
System.out.println(map.getOrDefault("李逵", "铁牛"));
System.out.println(map.getOrDefault("史进", "九纹龙"));
System.out.println(map.size());
//containKey(key) :检测key是否包含在Map中 ,时间复杂度 :O(logN)
// 按照红黑树的性质来进行查找
// 找到返回true ,否则返回false
System.out.println(map.containsKey("林冲"));
System.out.println(map.containsKey("史进"));
// containValue(value): 检测value是否包含在Map中 ,时间复杂度: O(N)
// 找到返回true ,否则返回false
System.out.println(map.containsValue("豹子头"));
System.out.println(map.containsValue("九纹龙"));
for (String s : map.keySet()) {
System.out.print(s + " ");
}
System.out.println();
// 打印所有的value
// values()是将map中的value放在collect的一个集合中返回的
for (String s : map.values()) {
System.out.print(s + " ");
}
System.out.println();
// 打印所有的键值对
// entrySet(): 将Map中的键值对放在Set中返回了
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "--->" + entry.getValue());
}
System.out.println();
}
}