当前位置: 首页 > 面试题库 >

Java值对集合?(元组?)

孟承嗣
2023-03-14
问题内容

我喜欢Java具有Map的方式,例如,你可以在其中定义地图中每个条目的类型<String, Integer>

我正在寻找的是一种类型的集合,其中集合中的每个元素都是一对值。该对中的每个值都可以具有自己的类型(如上面的String and Integer示例),该类型在声明时定义。

集合将保持其给定顺序,并且不会将值之一视为唯一键(如在地图中)。

从本质上讲,我希望能够定义类型<String,Integer>或任何其他2种类型的ARRAY 。

我意识到我可以创建一个只包含2个变量的类,但这似乎太冗长了。

我也意识到我可以使用2D数组,但是由于需要使用不同的类型,因此必须将它们制成OBJECT数组,然后我必须一直进行转换。

我只需要在集合中存储对,因此每个条目只需要两个值。如果不走上课路线,是否存在这样的东西?谢谢!


问题答案:

Pair类是这些“大型”泛型示例之一,很容易自己编写。例如,离开我的头顶:

public class Pair<L,R> {

  private final L left;
  private final R right;

  public Pair(L left, R right) {
    assert left != null;
    assert right != null;

    this.left = left;
    this.right = right;
  }

  public L getLeft() { return left; }
  public R getRight() { return right; }

  @Override
  public int hashCode() { return left.hashCode() ^ right.hashCode(); }

  @Override
  public boolean equals(Object o) {
    if (!(o instanceof Pair)) return false;
    Pair pairo = (Pair) o;
    return this.left.equals(pairo.getLeft()) &&
           this.right.equals(pairo.getRight());
  }

}

是的,它存在于网络上的多个位置,具有不同程度的完整性和功能。(我上面的示例旨在保持不变。)



 类似资料:
  • 我有一本字典。 我想找到两个元素的组合,其中每个元素必须来自不同的判决键。 例如:就是这样的组合,而不是这样的组合。 我已经试过这个了 但是它给了和两个不同的组合,但是我只想要其中一个。

  • 问题内容: 如果我有一个简单的字符串列表: 我可以对它进行排序: 但是假设我有一个Person类: 并列出: 我想有时按名称,有时按年龄,有时按国家对它进行排序。 最简单的方法是什么? 我知道我可以实现Comparable接口,但这似乎限制了我只能通过一个特定的属性对其进行排序。 问题答案: 可以使用自定义比较器调用Collections.sort。并且该比较器可以实现为允许以不同的排序顺序进行排

  • 我想在到期日对一个Retrient对象集合进行分组,但我想为每个组创建一个新的RentalReport对象,其中键是预定义的值(枚举),并且组是该对象的属性。我通过根据每个条件拟合集合并为每个条件创建一个RentalReport对象来实现这一点,但我想知道是否可以使用Collectors类的groupingBy方法来实现这一点。 有没有可能在Java 8中按一组预定义的过滤器进行分组,这样我就可以

  • 在编程时,可以使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的。如果需要保存数量变化的数据,数组就有点无能为力了。而且数组无法保存具有映射关系的数据,如成绩表为语文——79,数学——80,这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。 为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组), Java 提供

  • 目标 了解 Java 集合框架的用途 了解如何声明和使用 Java 数组、列表、集和映射 了解装箱和拆箱 了解如何让集合可迭代 Java 集合框架 大多数真实应用程序都会处理像文件、变量、来自文件的记录或数据库结果集这样的集合。Java 语言有一个复杂的集合框架,您可以使用它创建和管理各种类型的对象集合。本单元将介绍最常用的集合类并帮助您开始使用它们。 数组 备注:本单元的代码示例中的方括号是 J

  • 在前面的小节中,我们学习了数组,本小节学习的集合同样用于存放一组数据,我们将学习什么是集合、集合的应用场景 ,在应用场景部分我们将对比 Java 数组与集合的区别,还将系统介绍 Java 集合的架构,也将结合实例来讲解集合的实际应用。 1. 什么是集合 在计算机科学中,集合是一组可变数量的数据项(也可能为 0 个)的组合,这些数据可能共享某些特征,需要以某种操作方式一起进行操作。 Java 中集合