1

我需要在数组中存储一些数据对。可能几十个。我只需要追加,不需要删除,不需要搜索。然后我将按索引访问。每对是字符串值和整数值。Java 提供了很多方法来做到这一点,这是这样的常见做法吗?两个数组?数组中的类?

我知道如何在 JavaScript 中做到这一点:

var data = []
data.push(['Some name', 100])

//somewhere else
data.push(['Other name', 200])

但我需要 Java 的解决方案

谢谢你。

4

3 回答 3

4

例如,您可以创建 Pair 类(或使用 apache commons 的实现)来将两个元素存储在 List 中。

List<Pair<String, Integer>> l = new ArrayList<>();
l.add(new Pair<String, Integer>("Some name", 100));

请参阅泛型对类Java Pair<T,N> 类实现以了解如何实现 Pair 类。

于 2013-06-04T09:25:03.997 回答
3

这真的取决于,但总的来说,我认为创建一个对象并使用它的列表会更好:

public class MyObject {
    private String myString;
    private Integer myInt;
    // getters setters
}

并使用:

List<MyObject> = new ArrayList<>();

(您也可以使用Pair代替)

如果字符串(或整数)是唯一的,则可以使用 Map,但获取插入索引比较困难。

另一种选择是只有两个列表,一个用于字符串,一个用于整数,并在两个列表中使用相同的索引。

于 2013-06-04T09:23:27.070 回答
0

我按照上面的建议使用 POJO,因为这有助于为 POJO 的所有属性定义 getter 和 setter,通过覆盖 equals 和 hashCode 方法来比较对象。通过使用 getter 和 setter,您可以了解存储在哪个字段中的内容,并且比较可以根据您的要求为您提供对象排序。因此,这种方法对于适应新的需求来说也更加简洁和可扩展。此外,当您使用顺序键放置数据时,Pojo 的每个实例都可以放入 List 中(如果需要按排序顺序。

于 2013-06-04T09:45:49.287 回答