集合概述三[Map接口[Hashtable实现类(Properties子类)+HashMap实现类(LinkedHashMap子类)+TreeMap实现类]]

本文详细介绍了Java中的Map接口及其主要实现类:Hashtable、Properties、HashMap、LinkedHashMap和TreeMap。内容包括各实现类的特点、底层实现原理、插入元素的机制以及遍历方式。此外,还探讨了泛型在Map集合中的应用。
摘要由CSDN通过智能技术生成

一(Map接口)

Map接口是一种双列集合,每个元素都包含一个键对象Key和值对象Value,键和值之间存在一种对象关系,称为“映射”。Map中的映射关系是一对一的,一个键对象Key对应唯一 一个值对象Value,其中键对象Key和值对象Value可以是任意数据类型,并且键对象Key不允许重复,这样在访问Map集合中的元素时,只要指定了对象Key,就能找到对应的对象Value。

Map集合的核心继承体系如下(蓝色代表接口,绿色代表类): 

Map集合的常见方法如下表:

void put(Object key,Object value) 向Map集合中添加指定键值映射的元素
int size() 获取Map集合键值对映射的个数
Object get(Object key) 根据指定的键Key获得映射的值Value,若此映射不包含该键的映射关系,则返回null
boolean containsKey(Object key) 判断Map集合中是否存在指定的键对象key
boolean containsValue(Object value) 判断Map集合中是否存在指定的值对象value
Object remove(Object key) 删除并返回Map集合中指定键对象key的值映射元素
void clear() 清空整个Map集合中的键值映射元素
Set keySet() 以Set集合的形式(因为键Key不能重复)返回Map集合中所有的键对象Key
Collection values() 以Collection集合(因为值Value不限制重复性)的形式返回Map集合中所有的值对象Value
Set entrySet() 将Map集合转换为存储元素类型为Map的Set集合(Key不能重复,Value不限制,所以最终的Map类型的元素也不能重复)
boolean replace(Object key,Object value) 将Map集合中指定键对象key所映射的值修改为value

注意:Map集合中的键具有唯一性,当向集合中添加已存在的键值元素时,会覆盖之前已存在的键值元素。

 二(Hashtable实现类+Properties集合)

Hashtable是一个古老的Map实现类,在JDK1.0的时候提供。

Hashtable实现原理和HashMap相同,功能相同.底层都是使用hash结构,可以互换。
Hashtable不允许使用null作为key和value;Hashtable线程安全(效率低)。

Properties集合是Hashtable集合的子类,该类对象用于处理属性文件
属性文件里的key和value都是字符串,所以properties里的key和value都是字符串类型

在实际开发中,经常使用Properties集合类来存取应用的配置项。

案例:使用Properties来读取和写入文件内容(文件jdbc.prpperties在src目录下) 

package 集合;

import java.io.*;
import java.util.Properties;

public class PropertiesDemo {
    public static void main(String[] args) throws IOException {

        //创建Properties对象用于处理属性文件
        Properties p=new Properties();
        //使用类加载器可以直接获取类(src)路径下的文件,不必是文件的绝对路径
        InputStream inputStream=PropertiesDemo.class.getResourceAsStream("jdbc.properties");
        //load(InputStream in)用于加载指定的属性文件
        p.load(inputStream);
        //根据指定的key获取文件中value
        String url=p.getProperty("url");
        String username=p.getProperty("username");
        String password=p.getProperty("password");
        System.out.println("url="+url);
        System.out.println("username="+username);
        System.out.println("psaaword="+password);
        //指定要写入操作文件名称和位置
        FileOutputStream outputStream = new FileOutputStream(new File("D:\\javaEE\\VIP07\\src\\集合\\jdbc.properties
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值