在 Java 中初始化一对数组

Mat*_*rea 8 java arrays

我想初始化一个成对数组,但我的方式并不完全正确。这是我第一次写它的方式:

Pair<String, Integer>[] pair = new Pair[5];
Run Code Online (Sandbox Code Playgroud)

它被接受并且可以工作,但仍然存在以下警告:

“未经检查的分配:'android.util.Pair[]''android.util.Pair<Java.lang.String, Java.lang.Integer>[]'...

我已经尝试过这样做:

Pair<String, Integer>[] pair = new Pair<String, Integer>[5];
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

MC *_*ror 7

这是因为泛型的性质。

我的建议是放弃直接使用数组的想法,而改用 a List<Pair<String, Integer>>。在幕后,它无论如何都使用数组,但 aList更灵活。

List<Pair<String, Integer>> list = new ArrayList<Pair<String, Integer>>();
// You don't have to know its size on creation, it may resize dynamically
Run Code Online (Sandbox Code Playgroud)

或更短:

List<Pair<String, Integer>> list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用检索其元素,list.get(index)而您将使用list[index]数组。