如何设置2D数组的成员:ArrayList <object []>?</object []>

时间:2014-03-14 01:33:43

标签: java arraylist

我遇到了一个相当简单的问题。我有阵列的arraylist。我试图在arraylist中的数组中设置一个成员。但是,我收到了一些错误。你能帮我看一下吗?

 public static ArrayList findPercentages(ArrayList<Object[]> al, int max)
 {
    ArrayList<Object[]> a = al; 
    for(int i = 0; i < al.size(); i++)
    {
        a.set(a.indexOf((i))[2],((Integer)al.get((i)[2])/max));
    }
    return a;

 } 

1 个答案:

答案 0 :(得分:0)

语法为:

a.get(i)[2] = a.get(i)[2] / max;

a中的每个元素都是Object[],因此a.get(index)会返回Object[]

然而,这仍然无法正常工作,因为分部运营商不适用于Object。您必须使用更具体的原始包装类型(例如Float)而不是Object

如果您知道数组中的所有元素都是Float(例如),您可以投射它:

a.get(i)[2] = (Float)a.get(i)[2] / max;

但这是草率,繁琐,容易出错,并且是一个红色标记,表明您应该使用更合适的类型。 (另外,您应该在返回的ArrayList类型中指定一个类型参数;否则您将无法在整个地方进行可能不正确的未经检查/不安全的转换。)

顺便说一下,indexOf方法用于查找列表中的项目,而不是访问特定索引处的项目。