从数组列表中获取随机对象特定变量
问题描述:
我试图从数组列表中获取一个随机对象。随机应该在数组列表中的对象中,其变量可用为真。从数组列表中获取随机对象特定变量
现在它从整个列表中获得一个随机值班员。我只需要它指定一个限制服务员为真(变量) 这是行:
return myAtt.get(randAtt.nextInt(myAtt.size()));
这是方法:
public static Attendant askForAtt() {
Scanner scanAtt = new Scanner(System.in);
Random randAtt = new Random();
//Attendant asnAtt = null;
System.out.println("Do you require an Attendant ? Y or N");
String response = scanAtt.next();
if ((response.equals("y")) || (response.equals("yes")) || (response.equals("Yes")) || (response.equals("Y"))) {
// Cars.setAssignedTo(myAtt.get(randAtt.nextInt(myAtt.size())));
return myAtt.get(randAtt.nextInt(myAtt.size()));
} else if ((response.equals("n")) || (response.equals("no")) || (response.equals("No")) || (response.equals("N"))) {
return new Attendant ("User");
}
return new Attendant ("User"); //If input is neither Yes nor No then return new Attendant
}
我应该怎么打字? 我的服务员都是这样的:
public Attendant(int staffNum, String id, boolean available, attNm name, Cars assign) {
this.staffNum = staffNum;
this.id = id;
this.available = available;
this.name = name;
this.assign = assign;
}
PS:对不起,我的英语。这是我的第三语言
答
在话务员类,添加此功能
public boolean isAvailable(){
return available;
}
然后
public static Attendant askForAtt() {
...
if ((response.equals("y")) || (response.equals("yes")) || (response.equals("Yes")) || (response.equals("Y")) && someoneIsAvailable()) {
ArrayList<Attendant> temp = getAvailableAttendants();
Attendant attendant = temp.get(randAtt.nextInt(temp.size()));
return attendant;
}
...
}
public boolean someoneIsAvailable(){
for(int i = 0; i<myAtt.size(); i++){
if(myAtt.get(i).isAvailable()){
return true;
}
}
return false;
}
public ArrayList<Attendant> getAvailableAttendants(){
ArrayList<Attendant> availableAtt = new ArrayList<>();
for(int i = 0; i<myAtt.size(); i++){
Attendant att = myAtt.get(i)
if(att.isAvailable()){
availableAtt.add(att);
}
}
return availableAtt;
}
此外,你可以在你捕获用户使用
String.equalsIgnoreCase(String);
原因可能做“Es”。希望有所帮助。告诉我是否有问题
这是什么意思**指定服务员的真实限制(可变)** –
我的服务员有一个布尔参数我需要那些是真实的。一些在arraylist中是虚假的 – Kavi
检查可用字段的drawed参加,如果它的false,绘制另一个(while循环) – porgo