无法创建 LinkedList<String, int>



我想创建一个键是字符串且值是整数的对的 LinkedList ?

LinkedList没有

密钥。它是一个元素列表,而不是键/值映射。

如果你想要一个LinkedList,其中每个元素都是一对Integer/String值,你需要选择以下选项之一:

  • 创建泛型Pair
  • Ab)使用现有的泛型类(例如 Map.Entry
  • 为特定方案创建自定义类

我建议最后一个选项是最明智的选项 - 您将能够根据字符串和整数的真正含义为其提供适当的语义和名称。哎呀,您还可以避免对整数进行装箱,因为您可以拥有:

public class WhateverYouCallIt {
    private final int firstValue;
    private final String secondValue;
    // Constructor, properties
}

您只能在 LinkedList 中使用 Object,这意味着您不能使用 Java Primitives。但是,您似乎需要的是地图结构。

我建议使用java.util.HashMap,它允许您创建键,值对。

例:

    HashMap<String,Integer> a = new HashMap<String,Integer>();
    a.put("one",1);
    a.put("two",2);
    System.out.println(a.get("one"));
    //prints 1
    System.out.println(a.get("two"));
    //prints 2

编辑:根据您的评论,我看到您需要的顺序,然后使用以下示例:

    LinkedHashMap<String, Integer> b = new LinkedHashMap<String,Integer>();
    b.put("one",1);
    b.put("two",2);
    b.put("a",3);
    for (String key:b.keySet())
    {
        System.out.println(b.get(key));    // print 1 then 2 finally 3
    }

希望这就是您要问的(如果是这样,请修改您的问题)。

一个错误是你需要Integer而不是int,但正如其他人指出的那样LinkedList不接受键/值对。

我想HashMap是你所追求的。正如其他人所说,您不能在像 LinkedList 或 ArrayList 这样的库存储类中使用诸如"int"之类的基元类型,而必须使用诸如"Integer"之类的对象。

HashMap hash = new HashMap();

阅读此内容以获取更多信息:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html

相关内容

  • 没有找到相关文章

最新更新