Java中Map的不同实现以及泛型
K : key V : value E : element R : ReturnType T : type
Map<K, V> : 存储的是键值对。每个键值对成为映射项(Entry);键唯一,值是可重复的;每个键最多只能映射到一个值。 |HashMap : 键采用哈希表结构
|Hashtable : 键采用哈希表结构
|TreeMap : 键采用二叉树结构
增 void putAll(Map<? extends K,? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。 V put(K key, V value) : 当键是第一次存入map时,返回 null ; 如果不是第一次,用新值取代旧值,并将旧值作为返回值返回 将指定的值与此映射中的指定键关联(可选操作)。
Map<K, V> : 存储的是键值对。每个键值对成为映射项(Entry);键唯一,值是可重复的;每个键最多只能映射到一个值。 |HashMap<K, V> : 键采用哈希表结构 允许null键null值 线程不安全 |LikedHashMap<K, V> : 键采用 哈希表 + 链表 结构 保证键的插入顺序和迭代顺序一致 |Hashtable<Object,Object> : 键采用哈希表结构 不允许null键null值 线程安全 |Properties : 表示了一个持久的属性集。 Properties 可保存在流中或从流中加载。 属性列表中每个键及其对应值都是一个字符串。 |TreeMap<K, V> : 键采用二叉树结构
Map<K, V> : 存储的是键值对。每个键值对成为映射项(Entry);键唯一,值是可重复的;每个键最多只能映射到一个值。 |HashMap<K, V> : 键采用哈希表结构 允许null键null值 线程不安全 |LikedHashMap<K, V> : 键采用 哈希表 + 链表 结构 保证键的插入顺序和迭代顺序一致 |Hashtable<Object,Object> : 键采用哈希表结构 不允许null键null值 线程安全 |Properties : 表示了一个持久的属性集。 Properties 可保存在流中或从流中加载。 属性列表中每个键及其对应值都是一个字符串。 |TreeMap<K, V> : 键采用二叉树结构 对键进行排序 1.自然排序 : Comparable<T> : 要求实体类实现该接口
2.自定义排序 : Comparator<T> : 不需要实体类实现该接口,需要编写比较器
lambda 格式 : () -> {}
泛型 : 操作的数据类型不确定的问题
ObjectDao objectDao = new ObjectDao();
objectDao.setObject(new Student());
User user = (User) objectDao.getObject();
? : 通配符
泛型的上下限 : 上限: 从父类开始向下进行限制 ? extends E E 和 E的子类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!