我有两个数组,我需要比较它们,它们具有相同的值。
我有一个Ticket
类和一个NumberGenerator类。
在Ticket
课程中,我得到一个包含我的“幸运数字”的数组,NumberGenerator
包含获奖数字。
` 公共课程sammenligning
{ public void jon() { if(Arrays.equals(TicketRegister.getticketReg(),LottoMachine.listOfWinningNumbers())){ System.out.println(“我们有一个胜利者!”); } } } ` 我在getticketReg(dnw)收到错误 (ticketReg是数组的名称)
答案 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());