【问题标题】:Java, easiest way to store mixed-data types in a multidimensional array?Java,将混合数据类型存储在多维数组中的最简单方法?
【发布时间】:2011-04-27 19:29:41
【问题描述】:

我有一个包含一些字符串和整数的文件,我希望将其存储在二维“数组”中。这样做的最佳方法是什么?我已经有一段时间没有做 Java了,而且我一直在使用 VBA(你没有数据类型),所以我有点生疏了。

【问题讨论】:

  • 我经常厌倦问这个问题,但这样做的目的是什么?您是否正在读取文件并希望将每一行存储为数组的一个元素,其中每个元素是该行各个部分的另一个数组?通常,当我们知道您最终要完成的工作时,提供帮助会容易得多。也许也是一个例子......
  • 绝对尝试定义类型是要走的路...然后定义二维数组并不是最容易使用的数据结构。您可能想要使用 Maps 甚至更好的一些 Google Guava Collections(MultiSet 将适用于您的情况..)
  • 就像@javadrinker 提到的,让我们知道您的用例,通常有比定义二维数组更好的解决方案。

标签: java


【解决方案1】:

如果必须,将其设为二维对象数组。

更好的解决方案是找到一个通用接口,并使其成为该接口的二维数组。

最好的解决方案是做类似的事情

public class Entry {

  private String name;

  private int value;

  public Entry(String name, int value) {
    this.name = name;
    this.value = value;
  }

  public String getName() {
    return this.name;
  }

  public int getValue() {
    return this.value;
  }

}

并使其成为Entrys 的一维数组。请注意,如果您真的想“争取黄金”,请将上面的 Entry 类重命名为真正有意义的类名。

【讨论】:

    【解决方案2】:

    如果字符串和整数有任何关系,也许地图可以帮助你。例如,如果您有字符串,则映射到整数(int 和 Integer 可以轻松转换。阅读自动装箱):

    Map<String, Integer> map = new HashMap<String, Integer>();
    map.put("Teststring", 5);
    

    这将用于查找列表,其中顺序并不重要。如果您需要订购,请使用 TreeMap。

    您还应该查看Apache Commons IO,这是一个免费库,可以在处理文件方面提供巨大帮助。 (就像 Apache Commons 中的几乎所有东西一样。这些库不止一次挽救了我的理智/工作/生活……)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2015-03-06
      • 2021-11-27
      • 1970-01-01
      • 2017-06-27
      相关资源
      最近更新 更多