Java 第30天 高级进阶篇 Map接口和实现类的对比

文章目录:

        • 一、Map 实现类结构:
        • 二、Map 结构的理解:
        • 三、HashMap的底层实现原理与LinkedInHashMap底层实现原理。
        • 四、Map 常用方法:
    • Map map = new HashMap();
        • 五、遍历获取:键、值、对: key-value
        • 六、Map 实现类之五:Properties
          • 1、Properties 类是Hashtable的子类,该对象用于处理属性文件.
          • 2、由于属性文件中的key 、value都是字符串类型,所以 Properties里的key 和value都是字符串类型。
          • 3、栗子:Properties 简单使用
        • 七、Collections 工具类

一、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之前)
Java 第30天 高级进阶篇 Map接口和实现类的对比_第1张图片

二、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);
}
Java 第30天 高级进阶篇 Map接口和实现类的对比_第2张图片

// 遍历常用方法:
添加: 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 都可以;这里选择的是后者。
Java 第30天 高级进阶篇 Map接口和实现类的对比_第3张图片
Java 第30天 高级进阶篇 Map接口和实现类的对比_第4张图片

七、Collections 工具类

Java 第30天 高级进阶篇 Map接口和实现类的对比_第5张图片
面试题:Collection 和 Collections的区别?

1.Collection:
是集合类的上层接口。本身是一个Interface,里面包含了一些集合的基本操作。
Collection接口时Set接口和List接口的父接口
2.Collections
Collections是一个集合框架的帮助类,里面包含一些对集合的排序,搜索以及序列化的操作。
最根本的是Collections是一个类,
Collections 是一个包装类,Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素, 而另一些则不允许,一些 collection 是有序的,而另一些则是无序的。

 
 
 
如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。

你可能感兴趣的:(Java,基础知识)