java - 从 Java 中的泛型类读取多个嵌入变量

标签 java list generics tuples

本质上,我的任务是编写两个方法:一个 zip 方法,将包含两个通用反对列表的通用元组转换为由上述列表的元素组成的元组列表,以及一个执行相同操作的 unzip 方法在另一个方向。即:

({1, "banana", true}{asgard, 5.21e, "stupidhomework"})
=> unzip
{(1, asgard)("banana",5.21e)(true,"stupidhomework")}
=> zip
({1, "banana", true}{asgard, 5.21e, "stupidhomework"})

使事情变得更加复杂:该列表是一个简单链接的不可变通用列表,其结构如下

List<T>
public final T       head;
public final List<T> tail;

...元组同样通用;元组的两个元素实际上可以是任何内容:

public class Tuple<A, B> {
public final A a;
public final B b;

所以这是我的问题:我不知道如何获取第二层以下的元素。例如,通常情况下,我会这样做-

   public static<A, B extends List> List unzip(Tuple<A, B> ListenTuple){
        List TupelnListe = new List(new Tuple(ListenTuple.a.head, ListenTuple.b.head));

-为了获取我需要的元素,需要往下两层。不幸的是,因为 Tuple 是通用的,所以它不知道 ListenTuple.a 必须是一个 List,因此有一个头。在 zip 中,从元组获取 a 和 b 时也会出现类似的问题。哦,而且我不被允许出于某种愚蠢的任意原因进行类型转换,尽管我不确定这对我有什么帮助。

...基本上,任何人都可以指导我如何开始吗?这周他们在类里面基本上让我们学习泛型,但没有人明白。任何帮助将不胜感激。

最佳答案

这行得通吗?

public static<A, B> List zip(Tuple<List<A>, List<B>> ListenTuple){

因此 A 和 B 是列表的元素,并且 a、b 现在是列表。

我更熟悉 C++,因此不确定这些差异是否以某种方式阻止了这种情况。

关于java - 从 Java 中的泛型类读取多个嵌入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270219/

相关文章:

java - 如何检查 BackStack 是否为空

.net - 将 IEnumerable 转换为列表

java - 将 MySql 中两个表的数据导入 Android 应用程序

java - jackson 与 JSON : private attributes instead of public

python - 检查列表是否包含多个字符中的任何一个

swift - 如何使用 Swift 泛型处理成功和错误 API 响应?

java - 将带有通配符的 Java 泛型编译为 C++ 模板

c# - C# 中的任何泛型(参见代码)

java - 如何访问默认包中的java类?

c# - Distinct() 方法是否保持序列的原始顺序不变?