java - Pair Class有什么用,为什么要在这里实现?

标签 java

Pair Class 和 HashMap 之间的区别是什么。我看到它们都有 key 和 value

代码较早:

 List<Patient> patientDetails = new ArrayList<Patient>();
 Patient patientInfo = new Patient();
 patientInfo.setReligion(Constants.ReligionArray[custom.getReligion()]);
 patientDetails.add(patientInfo);

今天代码改成了这样。

更改代码

List<Pair<String, String>> patientInfo = new ArrayList<Pair<String, String>>();
patientInfo.add(new Pair<String, String>("Religion", Constants.ReligionArray[custom.getReligion()]));
  1. 他们为什么要在这里实现一个Pair Class?可能是什么原因。
  2. Pair Class 和 HashMap 有什么区别。

注意:两个代码都可以完美运行。

最佳答案

我认为您要问的问题是:两者之间有什么区别 List<Pair<T,S>>HashMap<T,S> .有很多。

一般Map对象用于将值与键相关联,并提供根据键快速获取值的方法。通常可以有一个值与一个键关联。

A List是存储对象的有序容器,提供迭代其内容并根据元素在列表中的位置获取元素的方法(获取第 N 个元素)。通常相同的元素可能会在列表中重复。

在您的情况下,当您使用列表时,您的患者可以有多种宗教信仰。要查找您的患者的宗教信仰类型,您必须手动搜索列表中第一个元素设置为宗教的对。

如果您使用 map ,每个患者都会有一个与他相关的宗教(或没有)。您也可以通过Map<String,String>.get(String key)快速找到宗教。

关于java - Pair Class有什么用,为什么要在这里实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16897486/

相关文章:

java - cglib 创建的 spring bean 抛出 no such method 异常

java - Android AlarmManager 闹钟不工作

java - 在线程内创建线程 - 好的做法?

java - 如何停止在 UIThread 上运行的 Runnable

java - AsyncTask 根据共享首选项中存储的时间检查当前 session

java - 从终端输入中转义反斜杠

java - EJB定时器: How to Start and stop EJB timer from client side?

java - 二维迷宫求解器递归函数

java - BeanUtils 不适用于链 setter

java - 为什么我们在对字符串进行操作时将string转换为charArray?