2012-11-15 5 views
0

나는 하나 개의 값이 ArrayList에 나타나는 빈도를 계산하는 방법을 알아 내려고 노력하고있어계수 - 자바

업데이트 된 코드.

System.out.println("Hand 1, Number of Clubs: " 
       + hands[0].frequency(hands[0], Card.Suit.CLUBS)); 

그래서 위의 경우 얼마나 많은 "클럽"이 손에 들어 있는지 알고 싶습니다. [0].

public int frequency(Hand c, Suit suit){ 
    int count = 0; 
    if(suit == suit) //need this to be "If suit (club) is present, count++) 
      { 
      count++; 
      }  
    return count; 
} 

내가 다음 위해 ArrayList 방법의 유형을 변경하면 내가 "계산"반환 할 수 없습니다 .... 빈 그리기있어

손 [0]에 의해 만들어집니다 :

Hand[] hands = new Hand[4]; 
    for(int i=0; i<hands.length; i++) { 
     hands[i]=new Hand(); 
     } 
     for(int i=0; i<=Deck.size()+8; i++) { 
      for(Hand hand:hands) { 
      hand.addSingleCard(Deck.deal()); 
      } 
     } 
+1

if (suit == suit)? 여기에 뭔가 빠졌어요. – kosa

+0

'hands [0]'은 무엇입니까? –

+1

이것은 항상 true를 반환합니다 :'if (suit == suit)' –

답변

2

이 기능은 이미 Collections 클래스에서 사용할 수 있습니다. 방법입니다

public static int frequency(Collection<?> c, Object o) 

컬렉션 내에서 특정 개체의 통화 수를 반환합니다. vaild equals 메소드를 제공하지 않으면 Java가 사용자의 평등의 의미를 알지 못하기 때문에 이것이 작동하지 않거나 적어도 사용자가 염두에두고있는 평등과 작동하지 않습니다.

+0

나는 당신의 메서드를 사용하려고 시도했으나 1 카운트 만 반환합니다 ... 아마도 나는 간단한 것을 간과하고 있습니다. . – binary101