文章目录:
一、Map 实现类结构:
Map 双列数据,存储key–value 对的数据,
HashMap:作为Map的主要实现类:线程不安全的,效率高,存储null的Key 和value
LinkedInHashMap:保证在遍历Map元素时,可以按照添加顺序实现遍历
TreeMap:保证按照添加的key–value对进行排序,实现排序遍历
Hashtable:作为古老的实现类:线程安全的,效率低;不能存储null的Key 和value
properties:常用来处理配置文件,key 和value 都是String类型。。
HashMap的底层:
数组+列表(JDK 7 之前)
数组+链表+红黑树(JDK 8之前)
二、Map 结构的理解:
Map 中的Key:无序的、不可重复的,使用Set存储所有的key ;Key所在的类要重写equals() 和Hashcode()以HashMap为例。
Map中的value:无序的、可重复的,使用collection存储所有的Value
一个键直对:Key–value构成了Entry 对象
Map中的Entry:无序的、不可重复的、使用Set 存储所有的Entry
三、HashMap的底层实现原理与LinkedInHashMap底层实现原理。
JDK7和 JDK 8的区别
百度,查看
四、Map 常用方法:
Map map = new HashMap();
1、添加
map.put(“AA”,123);
2、修改
map.put(“AA”,87);
putALL(Map m):将m中的所有key—value 对存放到当前map中
map1.putAll(map1);
3、remove 移除
Object value= map.remove("CC");
System.out.println(value);
System.out.println(map);
4、clear()清空操作
map.clear();
System.out.println(map.size());
@Test
public void test2(){
Map map = new HashMap();
map.put(“AA”,123);
map.put(“BB”,456);
map.put(“CC”,899);
map.put(“DD”,10000);
5、 object get(object key)
System.out.println(map.get(“DD”));
6、 containskey (Object key )
boolean isExist =map.containsKey("CC");
System.out.println(isExist);
7、 isExist =map.containsKey(123);
System.out.println(isExist); //false
8、map.clear();
System.out.println(map.isEmpty());
}
}
五、遍历获取:键、值、对: key-value
@Test
public void test3(){
Map map = new HashMap();
map.put(“AA”,123);
map.put(“BB”,456);
map.put(“CC”,899);
map.put(“DD”,10000);
// 遍历所有key 集:keySet()
Set set = map.keySet();
Iterator iterator =set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
// 遍历所有value集合:values()
Collection values =map.values();
for (Object obj:values){
System.out.println(obj);
}
// 遍历所有的Key–Value
// 方式一: EntrySet
Set entryset =map.entrySet();
Iterator iterator1 = entryset.iterator();
while (iterator1.hasNext()){
Object obj = iterator1.next();
Map.Entry entry= (Map.Entry)obj;
System.out.println(entry);
System.out.println(entry.getKey() +"---------"+entry.getValue());
}
}
}
// 方式二:
Set keySet = map.keySet();
Iterator iterator2 =keySet.iterator();
while (iterator2.hasNext()){
Object key =iterator2.next();
Object value =map.get(key);
System.out.println(key +"---------" +value);
}
// 遍历常用方法:
添加: put(Object key Object values )
删除:remove
修改:put(Object key )
查询:get
长度:size()
插入:keySet() / values() / entryset()
六、Map 实现类之五:Properties
1、Properties 类是Hashtable的子类,该对象用于处理属性文件.
2、由于属性文件中的key 、value都是字符串类型,所以 Properties里的key 和value都是字符串类型。
3、栗子:Properties 简单使用
1、在IDE中 当前工程下创建JDBC 文件,自动会到当前工程的目录。
2、右键New 选择File 和 Resoure Bundile 都可以;这里选择的是后者。
七、Collections 工具类
面试题:Collection 和 Collections的区别?
1.Collection:
是集合类的上层接口。本身是一个Interface,里面包含了一些集合的基本操作。
Collection接口时Set接口和List接口的父接口
2.Collections
Collections是一个集合框架的帮助类,里面包含一些对集合的排序,搜索以及序列化的操作。
最根本的是Collections是一个类,
Collections 是一个包装类,Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素, 而另一些则不允许,一些 collection 是有序的,而另一些则是无序的。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。