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

Hutool中的Pair类详解

1. Pair类概述

Hutool工具库中的Pair类是一个简单的键值对数据结构,用于存储两个相关联的对象。它类似于Map的Entry,但更加轻量级,适用于需要临时存储两个相关联数据的场景。

2. Pair类的主要特点

  • 简单轻量:不依赖复杂的数据结构
  • 不可变:一旦创建,键值不可修改(Hutool的Pair是不可变的)
  • 泛型支持:可以存储任意类型的对象
  • 实用方法:提供了一些便捷的操作方法

3. Pair类的使用场景

  1. 需要临时存储两个相关联的值时
  2. 方法需要返回两个相关结果时
  3. 替代简单的Map.Entry使用
  4. 需要将两个值作为单一对象传递时

4. Pair类的基本使用

创建Pair对象

// 使用of方法创建
Pair<String, Integer> pair = Pair.of("age", 25);// 使用构造方法创建(Hutool 5.x版本后推荐使用of方法)
Pair<String, Integer> pair = new Pair<>("age", 25);

获取键值

String key = pair.getKey();   // 获取键
Integer value = pair.getValue(); // 获取值

使用示例

// 返回两个相关值
public Pair<String, Integer> getUserInfo() {String name = "张三";int age = 30;return Pair.of(name, age);
}// 使用示例
Pair<String, Integer> userInfo = getUserInfo();
System.out.println("姓名: " + userInfo.getKey());
System.out.println("年龄: " + userInfo.getValue());

5. Pair类的实用方法

Hutool的Pair类还提供了一些实用方法:

  • equals():比较两个Pair是否相等
  • hashCode():获取Pair的哈希值
  • toString():转换为字符串表示
Pair<String, Integer> pair1 = Pair.of("a", 1);
Pair<String, Integer> pair2 = Pair.of("a", 1);System.out.println(pair1.equals(pair2)); // true
System.out.println(pair1.toString());    // (a,1)

6. Pair与其他类似结构的比较

特性Hutool PairMap.EntryApache Commons PairJava Record
可变性不可变通常可变不可变不可变
功能丰富度简单中等中等简单
是否需要Map上下文不需要需要不需要不需要
Java版本要求Java 14+

7. 实际应用案例

案例1:返回多个值

public Pair<Boolean, String> validateUser(String username, String password) {if (StringUtil.isEmpty(username)) {return Pair.of(false, "用户名不能为空");}if (StringUtil.isEmpty(password)) {return Pair.of(false, "密码不能为空");}// 验证逻辑...return Pair.of(true, "验证成功");
}

案例2:简化临时数据存储

List<Pair<String, Integer>> nameAgePairs = new ArrayList<>();
nameAgePairs.add(Pair.of("张三", 25));
nameAgePairs.add(Pair.of("李四", 30));for (Pair<String, Integer> pair : nameAgePairs) {System.out.println(pair.getKey() + ": " + pair.getValue());
}

8. 注意事项

  1. Hutool的Pair是不可变的,如果需要可变Pair,可以考虑使用MutablePair
  2. 对于复杂的数据关系,建议使用自定义类或Map
  3. 在Java 14+环境中,可以考虑使用record替代Pair
  4. 不要过度使用Pair,当数据关系明确时,使用有意义的类名更好

9. 总结

Hutool中的Pair类是一个非常实用的工具类,它提供了一种简单的方式来处理需要成对出现的数据。虽然功能简单,但在适当的场景下可以大大简化代码,提高开发效率。对于简单的临时数据存储和返回多个值的场景,Pair是一个不错的选择。

相关文章:

  • 【WebRTC-13】是在哪,什么时候,创建编解码器?
  • 计算机网络常识:缓存、长短连接 网络初探、URL、客户端与服务端、域名操作 tcp 三次握手 四次挥手
  • python: 列表切片
  • 深度学习工程化:基于TensorFlow的模型部署全流程详解
  • Tcp 通信简单demo思路
  • 一键设置动态域名+ipv6内网直通访问ssh服务-家庭云计算专家
  • 活动营销的数字化转型浪潮:从传统场景到极效361的智能跃迁
  • 为什么使用Less替代原始CSS?
  • Vue3 + Node.js 实现客服实时聊天系统(WebSocket + Socket.IO 详解)
  • 深入理解操作系统:从基础概念到核心管理
  • C++类和对象:构造函数、析构函数、拷贝构造函数
  • Ubuntu Linux系统配置账号无密码sudo
  • 电容知识小结
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
  • Oracle数据库DBF文件收缩
  • CMU-15445(3)——PROJECT#1-BufferPoolManager-Task#1
  • 大模型深度思考与ReAct思维方式对比
  • GPIO 输出模式下读取电平异常解析
  • 软考错题(三)
  • 亚马逊推出新型仓储机器人 Vulcan:具备“触觉”但不会取代人类工人
  • 吉林市马拉松5月18日开赛,奖牌、参赛服公布
  • 习近平向“和平薪火 时代新章——纪念中国人民抗日战争和苏联伟大卫国战争胜利80周年中俄人文交流活动”致贺信
  • 两国战机均未侵入对方领空,巴方公布对印回击细节
  • 央行:今日起下调再贷款利率0.25个百分点
  • 李云泽:房地产“白名单”贷款审批通过金额增至6.7万亿元
  • 青年与城市共成长,第六届上海创新创业青年50人论坛将举办