1

是否可以采用 Vector 之类的对象并使其具有多个泛型?我知道创建一个类是可能的,但是普通 Java API 附带的其他类(如 Vectors、Stack 等)是否可以具有多个泛型?

例如:

Vector<String, Integer> vect = new Vector<String, Integer>();
vect.add("Hello!", 0);

由此,一个索引将有两个值,一个字符串和整数。

提前致谢!!

4

3 回答 3

4

我不会使用 Vector,因为您可以使用 List。在您的情况下,您需要使用自定义类,例如

class MyClass {
    String s;
    int i;

    MyClass(String s, int i) {
        this.s = s;
        this.i = i;
    }
}

List<MyClass> list = new ArrayList<MyClass>();
list.add(new MyClass("Hello!", 0));

String s = list.get(0).s;
int i = list.get(0).i;
于 2012-11-15T15:00:57.553 回答
3

集合,例如 Vector,只能包含一种类型的对象。您正在尝试存储 2 个对象。创建一个名为 StringIntegerTuple 的类,该类包含对要存储的对象的 2 个引用,然后声明一个 Vector 并存储复合对象。

尽管从语义上讲,您可能想要一个 HashMap

于 2012-11-15T15:02:09.583 回答
1

该类Vector实现了一个可增长的对象数组,我认为您正在寻找地图,java.util.Map<key,value>地图的实现是HashMap<k,v>

Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"str");
于 2012-11-15T14:59:52.630 回答