2011-12-09 16 views
1

私はそれを比較する必要がある2つの配列を得ました、同じ値を持っています。異なるクラスにある2つの配列を比較する方法は?

TicketクラスとNumberGeneratorクラスが1つあります。

Ticketクラスでは、私は「ラッキーナンバー」を含む配列を得て、NumberGeneratorには勝利数が含まれています。

`パブリッククラスsammenligning

{公共ボイドJON(){ 場合(をArrays.equals(TicketRegister.getticketReg()、LottoMachine.listOfWinningNumbers())){ するSystem.out.println( "我々は勝者を持っている!");二つの配列を比較する } } } ` 私はgetticketReg(DNW)でエラーが発生します (ticketRegは、配列の名前です)

答えて

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

あなたは比較することができ、同じクラスである必要はありませんこれらは以下のメソッドを使用します。

boolean isEqual = Arrays.equals(array1(チケットクラスラッキーナンバー)、array2(NumberGenerator winning numbers)));

2

Arrays.sortを使用して配列を最初にソートしてから、Arrays.equalsを使用して配列を比較するのは簡単です。

1

あなたは自分自身に質問しなければならない別の質問は、その比較を行う場所ですか?幸運な数字をチケットから世界の他の国に公開する場合は、カプセル封鎖をにすることができます。

すると、それはプライベートと自己完結型Ticketで、多分あなたはあなたのチケットにメソッドを持つ必要があります保つために、それは次のようになります:

public boolean isWinningTicket(NumberGenerator numberGenerator) { 
    // assuming both arrays are sorted 
    return Arrays.equal(this.luckyNumbers, numberGenerator.getWinningNumbers()); 
} 
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]); 
       } 
      } 
     } 

とすべての要素が2つの配列の同じである場合、この

boolean blnResult = Arrays.equals(t.getTickets(),numberGenerator.getNumbers()); 
を使用
関連する問題