Map
创建Map:
//常规创建
Map<String,Integer> map=new HashMap<>();
//红黑树升序排列
TreeMap<String,Integer> treeMap;
//保证key的迭代书序的map
LinkedHashMap<String,Integer> linkedHashMap;
//并发安全的,性能较差
Hashtable hashTable;
//性能极好,并发性也极好
ConcurrentMashMap concurrentMashMao;
//ArraysList的安全版,性能比较差;
Vector vector;
Map是由key和value组成的散列表,一个key只能对应一个value;
key只允许一个null;
面试问题:一个equals必须需要HashCode相等,反之则不行;
方法
添加(如果重复,会把之前相同的覆盖)
Map.put();
查找
Map.get();
将一个旧的所有元素一次性放到另外一个map里
Map.puAll()
删除元素
Mao.remove();
替换
Map.replace
不存在该key,就会添加,防止覆盖
Map.putIfAbsent();
----------------------------------------------------------------------
//迭代的三种方式
得到key的集合
Set<String> keySet=Map.keySet();
keySet.forEach(System.out::println);
keySet.forEach(s->System.out.println(s));
KeySet.forEach(key->){System.out.println(key+"-"+map.get(key))};
专业迭代键值对:
Set<Map.Entry<String,Inteeger>> entrySet = Map.entrySet();
entrySet.forEach(entry->
SYstem.out.println(entry.getKey()+"-"+entry.getValue;));
获取value值
Collection(Integer)=map.values();
----------------------------------------------------------------------
对象键值对实现需要重写equals和hashcode来实现
以上内容均为自己理解,不作为准确定理。 选择性观看,持续跟新进度,喜欢感谢关注 CSDN博主:One_Gun