在java中使用不同类型的多维数组

时间:2010-04-09 10:51:02

标签: java

我想存储一个表格的数据结构,该表格包含一列字符串和另一列Ints。

List<Entry<String, Integer>> li = new LinkedList<Entry<String, Integer>>(); 

会为列表完成工作,但我宁愿有性能并且需要数组的内存。

我试过

Entry<String, Integer>[]  = new Entry<String, Integer>[10];

但这似乎不起作用。

Entry是正确的数据类型吗?

5 个答案:

答案 0 :(得分:3)

编写一个代表你的元组的类,并使用该类型的数组(或List)。不要避开课程,他们是你的朋友!

你究竟是什么意思“阵列的性能”?数组不一定比List实现更快。

考虑在0位置插入一个元素:LinkedList可以在O(1)中执行。要在数组中获得相同的效果,您必须执行O(n)操作(重新创建数组并复制所有现有值)。

答案 1 :(得分:2)

如果你真的需要一组泛型类型,你可以这样做:

Entry<String, Integer>[] array = new Entry[10];

但它会为您提供编译警告。你可以在这里阅读更多相关信息:

http://www.devarticles.com/c/a/Java/Wildcards-Arrays-and-Generics-in-Java/2/

答案 2 :(得分:1)

我不知道什么不起作用,但是:

  1. 你必须为你的阵列命名。
  2. 您无法使用泛型类型构建数组
  3. 不要忘记Entry是一个界面。
  4. 所以,这个:

    Entry<String, Integer>[] = new Entry<String, Integer>[10];
    

    应该是这样的:

    Entry<String, Integer>[] entries = new Entry[10];
    

    希望这有帮助!

答案 3 :(得分:1)

也许你可以使用ArrayList,与普通数组相比,性能不应该有太大差异。

答案 4 :(得分:1)

使用此,

List<Entry<String, Integer>> li = new ArrayList<Entry<String, Integer>>();