我有一个包含三个对象(骑士)的数组列表
现在也许我想访问第二个对象的颜色属性,我该怎么做?
当我使用时:
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());
答案 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
假设你有一个颜色属性的吸气剂