HashMap集合特点

 

》HashMap集合特点

HashMap:是基于哈希表的Map接口实现。

哈希表的作用是用来保证键的唯一性的。

         不明白,直接看HashMap的put方法源码

//HashMap的put方法源码

public V put(K key, V value) {
        if (key == null)
            return putForNullKey(value);
        int hash = hash(key.hashCode());
        int i = indexFor(hash, table.length);
        for (Entry<K,V> e = table[i]; e != null; e = e.next) {
            Object k;
            if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
                V oldValue = e.value;
                e.value = value;
                e.recordAccess(this);
                return oldValue;
            }
        }

        modCount++;
        addEntry(hash, key, value, i);
        return null;
    }
时间: 2024-10-16 19:45:53

HashMap集合特点的相关文章

Java基础知识强化之集合框架笔记57:Map集合之HashMap集合(HashMap&lt;Student,String&gt;)的案例

1. HashMap集合(HashMap<Student,String>)的案例 HashMap<Student,String>键:Student      要求:如果两个对象的成员变量值都相同,则为同一个对象.值:String HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap 中作为键的对象必须重写Object的hashCode()方法和equals()方法 2. 代码示例: (1)Student.java,如下: 1 pa

Java基础知识强化之集合框架笔记55:Map集合之HashMap集合(HashMap&lt;Integer,String&gt;)的案例

1. HashMap集合(键是Integer,值是String的案例) 2. 代码示例: 1 package cn.itcast_02; 2 3 import java.util.HashMap; 4 import java.util.Set; 5 6 /* 7 * HashMap<Integer,String> 8 * 键:Integer 9 * 值:String 10 */ 11 public class HashMapDemo2 { 12 public static void main(

HashMap集合与ArrayList集合的遍历

ArrayList集合的遍历: HashMap集合的遍历: 随笔说: 在使用迭代器迭代集合的过程中,不能对集合进行增删操作.ArrayList允许重复存放元素, HashMap不支持重复存放元素.

JAVA之HashMap集合

/** * HashMap集合讲解 * HashMap集合不允许集合元素的Key重复 */package com.test; import java.util.*; public class test8 { /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub HashMap hm = new HashMap();    

HashMap 集合的遍历

HashMap 集合的遍历: 两种方式遍历HashMap: 1 //集合hashMap的遍历: 2 //方式一: 3 @Test 4 public void testMethod1(){ 5 HashMap<String, String> map = new HashMap<String,String>(); 6 map.put("张三","23"); 7 map.put("李四","28"); 8 m

HashMap集合put元素的原理

HashMap集合put元素的原理:(1)计算key的hashCode(2)将key的hashCode作为计算因子,通过哈希算法计算HashMap的数组下标index(3)如果index下标的数组元素为空,直接put(新增元素)(4)如果index下标的数组元素不为空,调用key的equal方法,判断index位置的链表是否存在(5)如果找到链表中某个元素与key的equals方法相等,则使用value更新 (6)如果未找到链表中某个元素与key的equals方法相等,则新增一般面试的时候,经常

遍历HashMap集合的5种方式

public class MyHashMap { public static void main(String[] args) { UserInfo u1 = new UserInfo(); u1.setAge(10); u1.setName("张三"); UserInfo u2 = new UserInfo(); u2.setAge(10); u2.setName("李四"); Map<String,UserInfo> map=new HashMap&

关于JAVA中HashMap集合的的三种超不好记的便利方案

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类 1:先创建一个类 1 package Day; 2 3 import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java

HashMap集合

HashMap的定义: HashMap<String, Integer> map = new HashMap<>(); 定义一个键为String类型,值为Integer类型的map集合. HashMap原理: 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作, 在HashMap中的对象是无序的.允许以null作为键对象,但是因为 键对象不可以重复,重复的话就会被覆盖. HashMap常用方法及应用: 随笔说: HashMap也是一个线性的数组实现的,所以可以理解为其存