当前位置: 首页 > ds >正文

第十三节:第四部分:集合框架:HashMap、LinkedHashMap、TreeMap

Map集合体系

Map集合体系

HashMap集合的底层原理

HashMap集合的底层原理

HashMap集合底层是基于哈希表实现的

HashMap集合底层是基于哈希表实现的

LinkedHashMap集合的底层原理

LinkedHashMap集合的底层原理

TreeMap集合的底层原理

TreeMap集合的底层原理

代码:

Student类

package com.itheima.day26_Map_impl;import java.util.Objects;public class Student implements Comparable<Student> {private String name;private int age;private double height;@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && Double.compare(height, student.height) == 0 && Objects.equals(name, student.name);}@Overridepublic int hashCode() {return Objects.hash(name, age, height);}public Student() {}public Student(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}@Overridepublic int compareTo(Student o) {return this.age - o.age;//年龄升序排序}
}

代码一:掌握Map集合下的实现类:HashMap集合的底层原理

package com.itheima.day26_Map_impl;import java.util.HashMap;//目标:掌握Map集合下的实现类:HashMap集合的底层原理
public class HashMapTest1 {public static void main(String[] args) {HashMap<Student,String> map = new HashMap<>();map.put(new Student( "蜘蛛精",25,168.5),"盘丝洞");map.put(new Student( "蜘蛛精",25,168.5),"水帘洞");map.put(new Student( "至尊宝",27,178.5),"水帘洞");map.put(new Student( "牛魔王",28,188.5),"牛头山");System.out.println(map);}
}

结果1

代码二:目标:掌握LinkedHashMap的底层原理

package com.itheima.day26_Map_impl;import java.util.LinkedHashMap;
import java.util.Map;//目标:掌握LinkedHashMap的底层原理
public class LinkedHashMapTest1 {public static void main(String[] args) {Map<String,Integer> map = new LinkedHashMap<>();//按照键 有序,不重复,无索引。map.put("手机",128);map.put("手机",222);map.put("笔记本",666);map.put("手表",999);map.put(null,null);System.out.println(map);}
}

结果2

代码三:掌握TreeMap集合的使用

package com.itheima.day26_Map_impl;import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;//目标:掌握TreeMap集合的使用
public class TreeMapTest {public static void main(String[] args) {Map<Student,String> map = new TreeMap<>(new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {return Double.compare(o1.getHeight(), o2.getHeight());}});map.put(new Student( "蜘蛛精",25,168.5),"盘丝洞");map.put(new Student( "蜘蛛精",25,168.5),"水帘洞");map.put(new Student( "至尊宝",27,178.5),"水帘洞");map.put(new Student( "牛魔王",28,188.5),"牛头山");System.out.println(map);}
}

结果3

http://www.xdnf.cn/news/12426.html

相关文章:

  • 是否存在路径(FIFOBB算法)
  • JupyterNotebook全能指南:从入门到精通
  • LangchainRAG you need - 段落拆分
  • Setting搜索 ===》了解是如何初始搜索索引以及去掉控件搜索
  • exp1_code
  • 腾讯云服务器端口怎么全部打开?CVM和轻量端口开通教程
  • 【杂谈】-吉卜力化(Ghiblified ) AI 图像:艺术与隐私的交织
  • 06.最长连续序列
  • 我的创作纪念日——聊聊我想成为一个创作者的动机
  • 总结这几个月来我和AI一起开发并上线第一个应用的使用经验
  • 数据融合是什么?进行数据融合的4大关键环节!
  • 前端面试准备-7
  • 从 Stdio 到 HTTP SSE,在 APIPark 托管 MCP Server
  • PasteForm(ABP)框架之实现更加灵活的类似多租户的归属过滤功能,比如只能查看自己的相关数据
  • Abaqus分析步与输出:
  • 【leetcode】347. 前k个高频元素
  • 利率的计量
  • VIN码车辆识别码解析接口如何用C#进行调用?
  • 如何利用Elastic Stack(ELK)进行安全日志分析
  • 常见串口种类介绍
  • 一、ES6-let声明变量【解刨分析最详细】
  • 右值引用和移动语义
  • 酷黑NBA足球赛事直播源码体育直播M39模板赛事源码
  • redis数据过期策略、淘汰策略
  • RADIUS-管理员获取共享密钥
  • 【CPU】英特尔酷睿Ultra 5 225H与Ultra7 258V(Lunar Lake架构)PK
  • [蓝桥杯]航班时间
  • 【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)
  • 六、数据库的安全性
  • C++11 中 final 和 override 从入门到精通