我在编程时有时会遇到这个问题。
想象一下,我有一个包含两列的数据表。第一列有字符串,第二列有整数。
我希望能够将表的每一行存储到一个动态数组中。所以数组的每个元素都需要保存一个字符串和一个整数。
以前,我通过将表的每一列拆分为两个单独的 ArrayList 来完成此操作,然后当我想添加一行时,我会在每个 ArrayList 上调用一次 add() 方法。要删除,我会在同一索引处的每个 ArrayList 上调用一次 remove(index) 方法。
但是没有更好的方法吗?我知道有像 HashMap 这样的类,但它们不允许重复键。我正在寻找允许重复条目的东西。
我知道可以做这样的事情:
ArrayList<Object[]> myArray = new ArrayList<Object[]>();
myArray.add(new Object[]{"string", 123});
我真的不想每次从数组中取出一个元素时都必须转换成 String 和 Integer 但也许这是不创建我自己的唯一方法?这对我来说看起来更令人困惑,我更喜欢使用两个 ArrayList。
那么有没有像 ArrayList 这样的 Java 对象可以像这样工作:
ArrayList<String, Integer> myArray = new ArrayList<String, Integer>();
myArray.add("string", 123);