HashMap需要知道的知识点1

面经编程题1

对字符串统计字母出现个数,并以字符大小排序,然后以字符+出现次数输出,如[asda],输出[a2d1s1],

import com.sun.jdi.IntegerValue;

import java.util.*;

public class test1 {
    //输入:String s
    //输出: 字母+出现次数
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        Map m = charTime(s);
        show(m);



    }

    public static Map charTime(String s){
        Map<Character,Integer> map = new HashMap<>();
        for(char a: s.toCharArray()){
            if(map.containsKey(a)){
                int cnt = map.get(a);
                cnt++;
                map.put(a,cnt);
            }else{
                map.put(a,1);
            }
        }
        return map;
    }

    public static void show(Map map){
        Iterator it = map.entrySet().iterator();
        while(it.hasNext()){
            Map.Entry entry = (Map.Entry) it.next();
            Character key = (Character)entry.getKey();
            Integer val = (Integer)entry.getValue();
            System.out.print(key.toString()+val+" ");
        }
    }


}

HashMap取出:

  Map<Character,Integer> map = new HashMap<Character,Integer>();
     map.put('a',1);
     map.put('a',5);
 
 //通过迭代器对象取出map中保存的所有实体
 Iterator it = map.entrySet().iterator();
        while(it.hasNext()){
            Map.Entry entry = (Map.Entry) it.next();
            Character key = (Character)entry.getKey();
            Integer value  = (Integer)entry.getValue();
            System.out.println(key.toString()+value);

结果:a5

HashMap不能存储重复的键(即每个键只能唯一映射一个值)。当重复添加key相同,value不同的数据时,HashMap中这个key映射的value(最新值)。

注:如有侵权,联系马上删。看过的网站有点多,以上均是自己消化后所总结。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HashMap是Java中的一个数据结构,它实现了Map接口,提供了键值对的存储和检索功能。下面是HashMap的一些知识点: 1. HashMap的特点:HashMap允许存储键值对,其中键是唯一的,值可以重复。它是无序的,不保证元素的顺序。 2. 存储结构:HashMap内部使用数组和链表(或红黑树)的结合来实现存储。数组用来存储元素,链表或红黑树用来解决哈希冲突。 3. 哈希函数:HashMap使用哈希函数将键映射到数组索引上。哈希函数应该具有均匀分布性,尽量避免冲突。 4. 哈希冲突:当两个不同的键通过哈希函数映射到了同一个数组索引上时,就发生了哈希冲突。HashMap使用链表或红黑树解决冲突,如果链表长度较长时,会转换为红黑树以提高性能。 5. 存取操作:通过put(key, value)方法可以将键值对存入HashMap,通过get(key)方法可以根据键获取对应的值。HashMap还提供了remove(key)方法用于删除指定键值对。 6. 容量和负载因子:HashMap有一个初始容量和负载因子。如果容量不够,会自动扩容。负载因子用于控制数组的填充程度,当元素数量超过容量乘以负载因子时,会触发扩容。 7. 线程安全性:HashMap是非线程安全的,如果多个线程同时操作HashMap,可能会导致数据不一致。可以使用Collections工具类的synchronizedMap方法将HashMap包装成线程安全的Map。 8. 性能分析:HashMap的插入、删除和查找操作的时间复杂度都是O(1),在大部分情况下具有很高的性能。 这些是关于HashMap的基本知识点,还有其他更深入的细节和用法可以进一步学习和了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值