1

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

4

4 回答 4

8

LinkedList没有钥匙。它是元素列表,而不是键/值映射。

如果你想要一个LinkedList每个元素都是一对Integer/String值的地方,你需要选择一个:

  • 创建一个泛型Pair
  • (Ab)使用现有的泛型类(例如Map.Entry
  • 为您的特定场景创建自定义类

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

public class WhateverYouCallIt {
    private final int firstValue;
    private final String secondValue;

    // Constructor, properties
}
于 2012-05-02T15:22:10.543 回答
4

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

我推荐使用 java.util.HashMap,它允许你创建一个 Key、Value 对。

例子:

    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
    }

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

于 2012-05-02T15:24:39.570 回答
3

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

于 2012-05-02T15:20:52.360 回答
1

我想 HashMap 是你的追求。正如其他人所说,您不能在 LinkedList 或 ArrayList 等库存储类中使用诸如“int”之类的原始类型,而必须使用诸如“Integer”之类的对象。

HashMap hash = new HashMap();

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

于 2012-05-02T15:33:01.563 回答