我需要在数组中存储少量数据。也许几十个。我只需要追加,不需要删除,不需要搜索。然后我将通过索引访问。每对都是String值和Integer值。 Java提供了很多这样的方法,这是类似的常见做法吗?两个阵列?数组中的类?
我知道如何在JavaScript中执行此操作:
var data = []
data.push(['Some name', 100])
//somewhere else
data.push(['Other name', 200])
但我需要一个Java解决方案
谢谢。
答案 0 :(得分:4)
例如,您可以创建Pair类(或使用apache commons中的实现)在List中存储两个元素。
List<Pair<String, Integer>> l = new ArrayList<>();
l.add(new Pair<String, Integer>("Some name", 100));
请参阅Generic pair class和Java Pair<T,N> class implementation,了解如何实施Pair类。
答案 1 :(得分:3)
这实际上取决于,但总的来说,我认为最好创建一个对象并使用它的列表:
public class MyObject {
private String myString;
private Integer myInt;
// getters setters
}
并使用:
List<MyObject> = new ArrayList<>();
(您也可以使用Pair)
如果字符串(或整数)是唯一的,则可以使用Map,但更难获得插入索引。
另一个选项只是两个列表,一个用于字符串,一个用于整数,并在两个列表中使用相同的索引。
答案 2 :(得分:0)
我按照上面的建议使用POJO,因为这有助于为POJO的所有属性定义getter和setter,通过重写equals和hashCode方法来比较对象。通过使用getter和setter,您可以知道存储在哪个字段中的内容,并且比较可以根据您的要求为您提供对象的排序。因此,这种方法更加清晰和可扩展,以满足新的要求。此外,当您使用顺序键放置数据时,每个Pojo实例都可以放在List中(如果需要按排序顺序。