java - 无法访问 ArrayList 的 ArrayList(通用)

标签 java generics

我编写了代表集合的类。在集合中,我有一个 ArrayList 的字段“元素”。类中的所有方法都是泛型。

我写的第一个方法是获取另一个 Set 作为参数并返回新的 Set,该新 Set 保持 this.Set 与参数之间的联合。这是方法:

   public Set<E> union(Set<E> s){
      Set<E> toReturn = new Set<>();

      for(E toAdd : this.elements) {
        toReturn.addToSet(toAdd);
      }
      for(E toAdd : s.elements)
        toReturn.addToSet(toAdd);

      return toReturn;
   }

现在我想写另一个方法,它作为参数 ArrayList> 并返回新的 Set,它表示 this.Set 与参数 ArrayList 内的所有 Set 之间的联合。但我无法访问 ArrayList 中的集合。这是我的代码:

   public Set<E> union(ArrayList<Set<E>> s) {
      Set<E> toReturn = new Set<>();

      for(E el : s) {
               toReturn.addToSet(s.union(el));
      }

      return toReturn;
   }

编译器告诉我“方法 union(E) 未定义类型 ArrayList>。

我很乐意提供一些帮助。谢谢

最佳答案

您在 for 循环中使用了错误的变量,s 是 ArrayList,而 toReturn 是您要使用 addAll(otherSet); 方法计算并集的集合。如果是的话,你可能正在使用 Guava 的 Set 库,你可以继续使用 union(otherSet) 方法。

你在哪里:

for(E el : s) {
               toReturn.addToSet(s.union(el));
      }

更好的说法是:

for(Set<E> el : s) {
               toReturn.addToSet(toReturn.union(el));
      }

关于java - 无法访问 ArrayList 的 ArrayList(通用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56102358/

相关文章:

java - 创建一个程序来计算单词是否按升序排列

java - Android4OpenCV : setting resolution at startup

java - 提取两个用空格填充的管道之间的数字

java - 在嵌套枚举实现接口(interface)中继承泛型类型

java - 我无法在代码中实例化 Integer 类的对象 (Java)

java - 在 Scala 中使用 Java 语言环境会报错 : object is not a value

java - 反序列化包含 arraylist 内容的文件仅显示 1 个元素存在

c# - 将值从字符串转换为 Guid 或 int 的泛型类型

scala - 光滑的表不带类型参数

java - 重写返回 T 的泛型父类(super class)的方法