-2

例如:

public static LinkedList<String, Double> ll = new LinkedList<String, Double>;
4

5 回答 5

2

根据您的问题,我认为(不是 100% 确定)您正在寻找 java.util.LinkedHashMap<K, V>

在你的情况下,它会是LinkedHashMap<String, Double>

来自java文档:

Map 接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与 HashMap 的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。

如果您确实想通过以下方式获取元素list.get(5),则可以:

LinkedList<Entry<String, Double>>

所以你可以通过 获得Entry 元素Entry entry = list.get(5),然后entry.getKey()给你STRing,entry.getValue()给你Double。

于 2013-01-28T23:41:45.340 回答
1

阅读您的所有评论,我建议您执行以下操作:

public class StringAndDouble {
    private String str;
    private double dbl;
    // add constructor
    // add getters, setters and other methods as needed.
    // override equals() and hashCode()
}

现在您可以使用:

List<StringAndDouble> list = new LinkedList<>(); // or
List<StringAndDouble> list = new ArrayList<>();  // better in most cases 

现在您可以通过索引访问您的对象。

这个答案创建了一个新类,以满足您的需求。该类有两个字段,一个String,一个double。这不会使类成为二维的。我认为你有一个误解。当有n维度时,您需要n索引来访问元素。您说的是按索引访问,所以我假设您正在寻找一个包含多个字段的对象的一维列表。

于 2013-01-28T23:50:53.347 回答
0

你的意思是这样吗?

HashMap<String, Double> hm = new HashMap<String, Double>();
于 2013-01-28T23:37:11.877 回答
0

由于 OP 在对@Kent 的评论中说他希望能够按索引获取项目......

请注意, a LinkedList(and LinkedHashMap) 在这方面效率低下。他可能更喜欢ArrayList. 所以我建议他的“2D”实现是

ArrayList<Map.Entry<String, Double>>

这将有效地支持按索引获取。

至于 normal get(String key),您必须对所有条目进行线性搜索,这将是低效的。

因此,您有一个决定:哪种访问方式(通过键或通过索引)更重要?

于 2013-01-29T00:01:44.037 回答
0

您实际上可以在彼此之间使用链接列表...例如:

public LinkedList<LinkedList<Integer>> twoDimLinkedList = new LinkedList<LinkedList<Integer>>();

然后:

////////////////


int value = twoDimLinkedList.get(3).get(4);

/////////////////

或(如果您打算将其用于迭代目的):

/////////////////

for (int i = 0; i < twoDimLinkedList.size(); i++) {
    LinkedList<Integer> twoDimLinkedListRow = new LinkedList<Integer>();
    for (int m = 0; m < twoDimLinkedList.get(i).size(); m++) {
        twoDimLinkedListRow.add(value);
    }
    twoDimLinkedList.add(twoDimLinkedListRow);
}
////////////////
于 2016-10-23T03:10:13.350 回答