如何获得特定的 ArrayList 位置



我正在用java做一个大学项目。我有一个问题。我正在做一个扑克游戏模拟,我有一个叫做 mano 的数组列表,它在每个位置上都有"figura"和"palo"。另一个数组 Figura[] 有 5 个数字。我想将数字与数组列表 mano 中的数字进行比较,当有 5 个相等时,我希望程序返回我一个 premioPoker = true。但是我收到一个错误,当我执行项目时,我不知道出了什么问题。

String figura[]={"As","Dos","Sota","Caballo","Rey"};
boolean premioPoker = false;
static boolean poker(String figura[], ArrayList<Carta> mano){
    boolean premioPoker=false;
    int contadorPoker=0;
    int contadorMano;
    int contadorFigura=0;
    do {//contadorMano=0;
        do{                           
             //creo un contador
            contadorMano=0;                
                if (figura[contadorFigura].equals(mano.get(contadorMano).getFigura())){ //si la figura es igual a alguna de las almacenadas en la mano, lo contamos
                    contadorPoker++;
                }                   
                    contadorMano++;                                                             
            if (contadorPoker==4) {
                premioPoker=true;
            }
        contadorFigura++;
        contadorPoker=0;
        }while(contadorMano<5 && contadorPoker<4);
    }while (contadorFigura<5 && (!premioPoker));
    return premioPoker;

}

您可以使用 ArrayList 的 containsAll 方法:

static boolean poker(String figura[], ArrayList<Carta> mano) {
    ArrayList<String> figuraList = Arrays.asList(figura);
    ArrayList<String> manoFiguras = new ArrayList<>;
    for (Carta carta: mano)
        manoFiguras.add(carta.getFigura());
    return figuraList.containsAll(manoFiguras);
}

如果按指定顺序需要它们,则应使用equals而不是containsAll

相关内容

  • 没有找到相关文章

最新更新