当前位置: 首页 > 知识库问答 >
问题:

从arraylist特定变量获取随机对象

郗丰
2023-03-14
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;
    }

共有1个答案

宣煜
2023-03-14

在您的助理类上,添加此函数

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);
 类似资料:
  • 期望: 1. 定义: 设离散型随机变量$$X$$的分布律为:$$P{X=x_i}=p_k, k=1,2,...$$,若级数$$\displaystyle\sum_{k=1}^{\infty} x_k p_k$$绝对收敛,则称该级数的和为随机变量$$X$$的数学期望(mean),记为$$E(X)$$。即 $$ E(X)=\displaystyle\sum_{k=1}^{\infty} x_k p_k

  • 问题内容: 可以说我有一个单词列表,我想创建一个将新列表的大小作为参数并返回新列表的方法。我如何从原始sourceList中获得随机单词? 那么,如何以及在哪里可以使用我的随机数? 问题答案: 我找到了适当的解决方案。Random提供了一些返回流的方法。例如ints(size)会创建一个随机整数流。

  • } 我想从这个json对象中获取值。 我在下面试过了,但没有成功。

  • 我有一门课叫国家。在Country类中有2个名为“name”和“code”的字符串。我做了一个包含两者的构造函数。总之,我用名称“德国”建立一个国家,对于名称参数,我输入“德国”,对于代码,我输入“ger”。

  • 假设我有下面的类:每次Meow调用时,都会在堆上创建一个新的随机对象。 我是否应该将随机对象从Meow方法中取出,并像这样将它从局部变量改为实例变量?因此,每次Meow调用相同的随机对象时,将使用在堆上创建的cat对象,而不是像上面的方法那样使用一个新的对象。 我试图理解第二种方法是否是一个最佳实践,因为即使我的程序很小,它也不会是一个大问题,也许以后如果程序变大了,它会帮助我防止性能问题。