Java基础---映射框架

1.数据结构

数组

  • 特点:存储区间连续的,内存占用严重
  • 优点:随机读取和修改效率高。 查询来说时间复杂度O(1)
  • 缺点:插入和删除速度慢。时间复杂度为O(N)

链表

  • 特点:存储区间是离散的。内存利用率高
  • 优点:插入和删除速度快
  • 缺点:不能随机查找。查询效率低

  • 特点:本身具备了排序能力

HashMap

  • HashMap就是采用了数组+链表+红黑树的结构。
  • 通过分析得知可以通过HashMap中的key得到数组的索引,加快了CRUD的所有操作。

2. HashMap

根据Key获取对应的value。

常用方法

|-----------------|----------------------------------|
| 方法名 | 说明 |
| put( ) | 添加,原本key值对应有value,在使用put方法就会变成修改 |
| remove() | 删除 |
| containsKey() | 判断key是否存在 |
| containsValue() | 判断value是否存在 |

遍历方法

java 复制代码
public static void main(String[] args) {
        HashMap<Integer, String> map = new HashMap<>();
        map.put(1001,"张三");
        map.put(1003,"王二");
        map.put(1001,"麻子"); //修改
        map.remove(1001); //删除
        boolean f = map.containsKey(1001); //判断key是否存在
        boolean f2 = map.containsValue("麻子");//判断value是否存在

       //遍历方法一:
        Set<Integer> set = map.keySet();
        for (Integer integer : set) {
            System.out.println(map.get(integer)); //get(key) 根据Key获取对应的value
        }
      
            
        //遍历方法二:
        Set<Map.Entry<Integer, String>> entries = map.entrySet();
        for (Map.Entry<Integer, String> entry : entries) {
            System.out.println(entry.getKey()+"--"+entry.getValue());
        }
    }

3. HashTable

使用方法同HashMap差不多

常用方法

|-----------------|----------------------------------|
| 方法名 | 说明 |
| put( ) | 添加,原本key值对应有value,在使用put方法就会变成修改 |
| remove() | 删除 |
| containsKey() | 判断key是否存在 |
| containsValue() | 判断value是否存在 |

HashTable和HashMap的区别

  • HashMap是线程不安全的。HashTable是线程安全的

  • HashMap效率高,HashTable效率低

  • HashMap中的key和value都可以为null,HashTable不可以为null。

相关推荐
惊讶的猫4 小时前
探究StringBuilder和StringBuffer的线程安全问题
java·开发语言
jmxwzy4 小时前
Spring全家桶
java·spring·rpc
Halo_tjn4 小时前
基于封装的专项 知识点
java·前端·python·算法
Fleshy数模5 小时前
从数据获取到突破限制:Python爬虫进阶实战全攻略
java·开发语言
像少年啦飞驰点、5 小时前
零基础入门 Spring Boot:从“Hello World”到可上线的 Web 应用全闭环指南
java·spring boot·web开发·编程入门·后端开发
苍煜5 小时前
万字详解Maven打包策略:从基础插件到多模块实战
java·maven
有来技术5 小时前
Spring Boot 4 + Vue3 企业级多租户 SaaS:从共享 Schema 架构到商业化套餐设计
java·vue.js·spring boot·后端
东东5165 小时前
xxx医患档案管理系统
java·spring boot·vue·毕业设计·智慧城市
一个响当当的名号6 小时前
lectrue9 索引并发控制
java·开发语言·数据库
进阶小白猿6 小时前
Java技术八股学习Day30
java·开发语言·学习