我想创建一个LinkedList,其键是String,值是整数?
答案 0 :(得分:8)
LinkedList
没有密钥。它是元素列表,不是键/值映射。
如果您想要LinkedList
,其中每个元素都是一对Integer
/ String
值,您需要选择以下其中一个:
Pair
类Map.Entry
)我建议将最后一个选项作为最合理的选项 - 您将能够根据字符串和整数的实际含义给出适当的语义和名称。哎呀,你也可以避免装箱整数,你可以:
public class WhateverYouCallIt {
private final int firstValue;
private final String secondValue;
// Constructor, properties
}
答案 1 :(得分: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
}
希望这就是你所要求的(如果是,请修改你的问题)。
答案 2 :(得分:3)
一个错误是您需要Integer
而不是int
,但正如其他人指出的那样LinkedList
不会使用键/值对。
答案 3 :(得分:1)
我想象一下HashMap就是你的追求。正如其他人所说,你不能使用诸如&#34; int&#34;之类的原始类型。在像LinkedList或ArrayList这样的库存储类中,您必须使用诸如&#34; Integer&#34;之类的对象。
HashMap hash = new HashMap();
阅读本文以获取更多信息:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html