Java学习笔记_Day23(HashMap)

HashMap的特点

  1. HashMap是Map里面的一个实现类
  2. 直接使用Map里面的方法就可以了
  3. 特点是由键决定的:无序,不重复,无索引
  4. HashMap和HashSet底层原理是一样的,都是哈希表结构

LinkedHashMap

  • 由键决定:有序,不重复,无索引
  • 存储和取出的元素顺序一致
  • 原理:底层数据结构依然是哈希表,只是每个键值对元素又额外的多一个双链表的机制记录存储的顺序

TreeMap

  • TreeMap和TreeSet底层原理一样,都是红黑树结构
  • 不重复,无索引,可排序
  • 对键进行排序
  • 默认从小到大排序

代码书写两种排序规则

  • 实现Comparable接口,指定比较规则
复制代码
@Override
public int compareTo(Student o) {
    int i=this.getAge()-o.getAge();
    i=i==0?this.getName().compareTo(o.getName()):i;
    return i;
}
  • 创建集合时传递Comparator比较器对象,指定比较规则
复制代码
TreeMap<Integer, String> tm = new TreeMap<>(new Comparator<Integer>() {

    @Override
    public int compare(Integer o1, Integer o2) {
        return o2-o1;
    }
});

统计字符串字母出现的次数

复制代码
String s="aababccddacbdaac";
TreeMap<Character,Integer> map=new TreeMap<>();
for(int i=0;i<s.length();i++){
    char c=s.charAt(i);
    if(map.containsKey(c)){
        map.put(c,map.get(c)+1);
    }
    else {
        map.put(c,1);
    }
}
System.out.println(map);
相关推荐
边境悍匪4 小时前
蜗牛学苑 Java 智能体学习 Day36|阿里云 OSS 文件上传、Spring 事务、全局异常思维导图复盘
java·学习·阿里云
苏渡苇4 小时前
Spring Insight 里上报 Span 为什么用 JDK HttpClient 而不是 RestTemplate
java·后端·spring·spring cloud·springboot·性能监控
裕晟资质规划4 小时前
军工保密资质二级申报的四个可量化硬条件:条文位置、数值口径与西安配套企业实务要点
java·服务器·网络·数据库·算法
LuminousCPP4 小时前
数据结构-排序(一):基础排序算法横向对比|冒泡、插入、希尔、堆与双向选择,详解二分 / Knuth 增量
c语言·数据结构·笔记·算法·排序算法
初願致夕霞5 小时前
C/C++传统程序内存分布(代码实测)
java·c语言·c++
掉鱼的猫5 小时前
不只是 Token 流:Solon AI 4.1 的语义化聊天事件
java·openai
她的男孩5 小时前
同一个接口,为什么销售只看到自己的订单?我拆了 681 行数据权限拦截器的源码
java·后端·架构
卓怡学长5 小时前
w157基于springboot北部湾地区助农平台
java·spring boot·spring·maven·intellij-idea
小白羊丨5 小时前
问数 Agent 整体架构、意图识别、历史上下文与 NL2SQL
java·面试·架构
Linux-lucky5 小时前
33-Linux学习之旅之MySQL用户管理
java·linux·运维·学习·mysql·ubuntu