访问数组列表中的对象数据

时间:2015-09-06 18:57:22

标签: java arrays list object

我有一个包含三个对象(骑士)的数组列表

现在也许我想访问第二个对象的颜色属性,我该怎么做?

当我使用时:

var largestNumber = function(nums) {
        return nums.sort(function (a,b){
            var priority = (b + '' + a) - (a + '' + b)
            console.log((b + '' + a) + " - " + (a + '' + b) + " => " + (priority));
            if(priority > 0) console.log(a + " > " + b);
            else console.log(a + " < " + b);
            return (b + '' + a) - (a + '' + b);
        }).join('').replace(/^0*/,'') || '0';
};
var nums= [3, 30, 34, 5, 9]
console.log(largestNumber(nums));

我只得到:

System.out.println(arraylist.toString());

5 个答案:

答案 0 :(得分:0)

ArrayList类包含方法get(int),它允许您指定(从零开始)索引并从列表中检索相应的项目。

要获取列表中的第二个对象,您应该使用它:

Knight secondKnight = arrayList.get(1);

然后,您可以访问Knight类定义的任何可访问的方法或类字段,例如颜色。

(因为索引是从零开始的,如果你想得到第一个Knight,你会改为使用arrayList.get(0)。)

答案 1 :(得分:0)

如果您想输出骑士的颜色,则需要覆盖toString()

为了做到这一点,你需要做类似下面的事情(类似于如果你熟悉它就覆盖C ++中的输出操作符)。

// I'm assuming you have a Knight class, so in that class you would want 
// to override the toString() function

@Override
public String toString() {
    // Return a String of what you would like to output
    // Assuming the color is stored as a String already, return the color
    return this.getColor(); 
}

答案 2 :(得分:0)

方法I

必须使用get(int i)方法,该方法在数组列表的索引处检索对象,然后可以使用&#34; .field&#34;来访问该对象的字段。

考虑以下场景,它与你正在做的类似,你有一个骑士类。

我将使用外星人类:

public class Alien{

    //Properties of aliens
    int numOfFingers;
    String name;
    String color;

    public Alien(int num, String name, String color)
    {
        this.numOfFingers = num;
        this.name = name;
        this.color = color;
    }       

}//End of alien class

包含数组列表的类:

import java.util.ArrayList;

public class DetailExtractor {

    //ArrayList containing alien objects
    static ArrayList<Alien> alienRegister = new ArrayList<>();

    public static void main(String[] args){
        //Populating the arrayList
        alienRegister.add(new Alien(3, "Zorg", "Blue"));
        alienRegister.add(new Alien(5, "Chad", "Purple"));


        //Retrieving a property, say name of second alien...

        System.out.println(alienRegister.get(1).name);

    }

}

方法II

您没有从使用toString方法获得所需内容的原因是因为您正在打印对象,您需要覆盖toString方法。如果直接打印对象,您将收到对象哈希码以及其他一些细节......

你必须做的是:

@Override
public String toString(){
    //code to get required string followed by a return statement
}

答案 3 :(得分:0)

String color = arraylist.get(1).getColor();

假设你在Knight类中有一些颜色的公共getter,这将有效。像 -

这样的东西
class Knight {
    ....
    String color;
    ....
    ....

    public String getColor() {
        return color;
    }
}

答案 4 :(得分:-2)

使用System.out.println(arraylist.toString())打印的是arraylist包含的对象。

你想做什么,访问对象的两种颜色是:

System.out.println(arraylist.getIndex(0).getColor);

getColor假设你有一个颜色属性的吸气剂