我想创建一个键是字符串且值是整数的对的 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