如何将字符串添加到 LinkedHashSet?

How to add Strings to a LinkedHashSet?

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

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

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

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

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);
    }
}

包含您的代码的 class 名称被命名为 LinkedHashSet,它隐藏了 java.util.LinkedHashSet。您的 class 没有 add 方法,也没有泛型类型参数。因此出现错误。

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