首页 > 其他分享 >集合6 - HashMap

集合6 - HashMap

时间:2023-01-04 10:11:53浏览次数:41  
标签:map HashMap System value println key 集合 out

HashMap

Hash -- Hash算法根据key计算hash函数来存放数据、处理冲突(链地址法-红黑二叉树) => 无序存储,重复丢弃

Map -- 键值对<key, value>中key是唯一的,作为value的索引

基本操作

public class Map {
    public static void main(String[] args) {

        //TODO Collection HashMap
        //HashMap = Hash(Hash算法) + Map(键值对)
        //由于Hash算法的特性 => 无序存储,重复丢弃
        //Hash算法根据key计算索引 -- 判断是否相同
        HashMap<String,String> map = new HashMap<String,String>();

        //TODO .put() 添加数据
        map.put("hihi","A");
        map.put("hehe","B");
        map.put("hoho","C");
        map.put("haha","D");
        map.put("haha","D");
        //key值相同value相同,重复数据丢弃
        System.out.println(map.put("haha", "W"));
        //key值相同value不同,覆盖value值,返回旧值

        //TODO .putIfAbsent() 只添加数据,相同的key不进行覆盖
        System.out.println(map.putIfAbsent("haha", "I"));
        //添加失败,返回对应key值已有数据的value

        //TODO .get() 查询数据
        //传入key返回value
        System.out.println(map.get("haha"));

        //TODO .replace() 修改数据
        System.out.println(map.replace("hehe", "Q"));//返回旧value
        System.out.println(map.replace("tttt", "Q"));//key值不存在返回null

        //TODO .clear() 清空数据

        //TODO .keySet() 获取所有的key,返回Set集合 => 数据不能重复
        Set set = map.keySet();
        System.out.println(set);
        //根据key集合遍历打印所有value
        for (Object o : set) {
            System.out.println(map.get(o));
        }
        //TODO .values() 获取所有value,返回Collection集合 => 数据可重复
        Collection values = map.values();
        for (Object value : values) {
            System.out.println(value);
        }

        //TODO .containsKey() 判断是否存在指定key
        System.out.println(map.containsKey("haha"));

        //TODO .containsValue() 判断是否存在指定value
        System.out.println(map.containsValue("A"));

        //TODO .entrySet() 获取键值对对象 Entry -- 内部接口类
        Set<java.util.Map.Entry<String, String>> entries = map.entrySet();
        //整体打印 -- 数组形式
        System.out.println(entries);
        //遍历打印 -- .getKey() .getValue() 获取每一个对象的key和value
        for (java.util.Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey() + "=" + entry.getValue());
        }

        //TODO .remove() 删除数据 传入key值删除整个键值对
        System.out.println(map.remove("hehe")); //返回删除键值对的value
        //传入key+value  删除键值对的key和value必须都符合参数 成功返回true 失败返回false
        System.out.println(map.remove("haha", "a"));

        System.out.println(map);
        
    }
}

标签:map,HashMap,System,value,println,key,集合,out
From: https://www.cnblogs.com/Ashen-/p/17024078.html

相关文章

  • 秋招之路-链表面试题集合(一)
    前言链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位......
  • leetcode-645. 错误的集合
    645.错误的集合-力扣(Leetcode)又用了哈希表,又用了数学计算,看题解有个位运算看不太懂funcfindErrorNums(nums[]int)[]int{m:=make(map[int]struct{},len(nu......
  • 秋招之路-链表面试题集合(二)
    [图]program2019-07-24前言链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面......
  • List集合的排序方式
    本文主要讲述Lsit集合的排序方式:1/**2*集合的排序方式:2种方式3*/4publicclassGenericWork{5publicstaticvoidmain(String[]args){......
  • Java【使用HashMap类实例化一个Map类型的对象】
    题目:使用HashMap类实例化一个Map类型的对象m1,键(String类型)和值(int型)分别用于存储员工的姓名和工资,存入数据如下:张三——800元;李四——1500元;王五——3000元;将张三的工......
  • 集合5 - Queue
    Queue-ArrayBlockingQueue底层实现--数组Array(数组)-Blocking(创建对象时的容量,多了就堵塞)-Queue(先进先出)publicclass_Queue{publicstaticvoidm......
  • 集合4 HashSet
    HashSet底层实现是数组+链表数据存放时的索引通过内部Hash算法确定--增加数据是无序的Hash算法--索引相同时根据内容是否相同决定是否丢弃,内容不相同则采用链地址......
  • java集合Collection操作
    CollectionallCollections=newArrayList();//集合里添加数据allCollections.add("testName");//判断即合理是否包含某特定的数据if(al......
  • 集合3 LinkedList
    LinkedList底层双向链表基础增删改查publicclass_LinkedList{publicstaticvoidmain(String[]args){//TODO集合-Collection-LinkedList=......
  • 集合1 Collection
    集合Collection数据的一种容器,用于容纳数据Java提供了完整的集合框架数组也是容器,为什么要使用集合?数组使用不方便数组索引范围由长度确定不能动态修改容量什......