如何在Java中访问数组列表中Object []中的值

时间:2019-07-17 03:02:33

标签: java arrays list object arraylist

我有一个带有Object []的列表,并且我想访问Objects []之一的值。这是我的代码的样子:

private List<Object> trackList;
trackList = new ArrayList<>();

Integer random = (int)(Math.random() * ((100 - 0) + 1)) + 0;
Integer random2 = (int)(Math.random() * ((100 - 0) + 1)) + 0;
Object[] currTrack = new Object[]{random1, random2};
trackList.add(currTrack);

Integer value1 = trackList.get(0)[1];

获取:“预期的数组类型;找到:'java.lang.object'

我认为我缺少一些非常简单的东西。谢谢您的帮助。

2 个答案:

答案 0 :(得分:5)

您这样声明列表:

List<Object> trackList;

因此,当您这样做时:

trackList.get(0)

这会让您获得Object而不是Object[]

您需要投射它:

((Object[])trackList.get(0))[1]

但是您还有另一个问题,因为上面的表达式返回了Object,并且您想将其分配给Integer

所以您需要另一个演员..完整行应该是:

Integer value1 = (Integer)((Object[])trackList.get(0))[1];

顺便说一句,只声明列表包含要实际放入的内容会更容易。

答案 1 :(得分:0)

在列表声明中,您设置列表包含对象而不是对象[]:

List<Object> trackList;

因此,当您这样做时:

trackList.get(0)给您一个对象,而不是一个对象[]

您需要将列表初始化更改为

List<Object[]> trackList;