如何比较不同类中的两个数组?

时间:2011-12-09 11:12:05

标签: java arrays class

我有两个数组,我需要比较它们,它们具有相同的值。

我有一个Ticket类和一个NumberGenerator类。

Ticket课程中,我得到一个包含我的“幸运数字”的数组,NumberGenerator包含获奖数字。

` 公共课程sammenligning

{     public void jon()     {         if(Arrays.equals(TicketRegister.getticketReg(),LottoMachine.listOfWinningNumbers())){             System.out.println(“我们有一个胜利者!”);         }     } } ` 我在getticketReg(dnw)收到错误 (ticketReg是数组的名称)

5 个答案:

答案 0 :(得分:2)

您应该首先使用Arrays.sort对数组进行排序,然后使用Arrays.equals比较数组是微不足道的。

答案 1 :(得分:1)

你应该问自己的另一个问题是,在哪里进行比较?如果您将票证中的幸运数字“暴露”给世界其他地方(使用公开方法),您可以打破封装

要在Ticket中保持私密和自包含,也许您的票证上应该有一个方法,如:

public boolean isWinningTicket(NumberGenerator numberGenerator) {
    // assuming both arrays are sorted
    return Arrays.equal(this.luckyNumbers, numberGenerator.getWinningNumbers());
}

答案 2 :(得分:0)

if (Arrays.equals(aTicket.getNumbers(), aNumberGenerator.getNumbers())) {
    System.out.println("We have a winner!");
}

答案 3 :(得分:0)

比较两个数组不需要在同一个类中,您可以使用以下方法比较它们

boolean isEqual = Arrays.equals(array1(ticket class lucky numbers),array2(NumberGenerator中奖号码));

答案 4 :(得分:0)

门票类:

public class Ticket {
 private Integer [] tickets=new Integer[]{80,35,41};

    public Integer[] getTickets() {
        return tickets;
    }

    public void setTickets(Integer[] tickets) {
        this.tickets = tickets;
    }

}

NumberGenerator:

public class NumberGenerator {
    private Integer [] numbers=new Integer[]{51,85,80,35,41};

    public Integer[] getNumbers() {
        return numbers;
    }

    public void setNumbers(Integer[] numbers) {
        this.numbers = numbers;
    }

}

TestClass比较:

for(int i=0;i<t.getTickets().length;i++)
        {
            for(int j=0;j<numberGenerator.getNumbers().length;j++)
            {
                if(t.getTickets()[i].equals(numberGenerator.getNumbers()[j]))
                {
                    System.out.println("Winner Number is::::"+t.getTickets()[i]);
                }
            }
        }

如果所有元素都是两个数组相同,那么使用此

boolean blnResult = Arrays.equals(t.getTickets(),numberGenerator.getNumbers());