java - 如何将字符串添加到 LinkedHashSet?

标签 java generics hashset linkedhashset

LinkedHashSet lHs = new LinkedHashSet();
lHs.add("Beta");

在编译上面的代码时(tutorialspoint 使用了类似的方法),我得到了错误:

The method add(String) is undefined for the type LinkedHashSet

如果它是通用的(我认为它来自它的类声明):

LinkedHashSet<String> lHs = new LinkedHashSet<String>();
lHs.add("Beta");

然后我得到错误:

The type LinkedHashSet is not generic; it cannot be parameterized with arguments

来自Java docs ,似乎 LinkedHashSet 应该与通用版本一起工作,因为它扩展了 HashSet,而 HashSet 与 add() 一起工作。

如何将字符串添加到 LinkedHashSet?是否需要创建自己的重载 add() 方法来包含字符串?

See whole program here

最佳答案

查看您的代码:

class LinkedHashSet {

    public static void main(String[] args) {
        //LinkedHashSet<String> lHs = new LinkedHashSet<String>();
        LinkedHashSet lHs = new LinkedHashSet();

        lHs.add("Beta");
        lHs.add("Alpha");
        lHs.add("Eta");
        lHs.add("Gamma");
        lHs.add("Epsilon");
        lHs.add("Omega");

        System.out.println(lHs);
    }
}

包含您的代码的类名为 LinkedHashSet , 它隐藏了 java.util.LinkedHashSet .你的类(class)没有add方法,并且没有泛型类型参数。因此出现错误。

您应该重命名它。并且您应该使用通用声明( LinkedHashSet<String> lHs = new LinkedHashSet<String>();Set<String> lHs = new LinkedHashSet<>(); )。

关于java - 如何将字符串添加到 LinkedHashSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46139734/

相关文章:

javascript - 接受类方法调用并返回该类的实例的工厂函数

给定列表时,Java containsAll 不返回 true

java - 返回 Hashset 中具有最高值的类对象

java - 如何在 Java 中以 sudo 权限执行 bash 命令?

java - Tomcat 保存日志历史

java - 尝试打印到JTextArea

java - 在 Map 中存储抽象类型和具体类型

更改包名称大小写约定的 Java 原因

用于以时间戳格式输入日期的 Java FX 控件

java - Java 中的 HashMap 和 HashSet size()