public static FinalCard checkEffCardType(ArrayList<Card> list) {
		assert(list.size() == EFFECTIVE_CARD_NUM);
		
		Collections.sort(list);
		
		if (isStraightFlush(list) >= 0) {
			return new FinalCard(list, FinalCardType.STRAIGHT_FLUSH);
		}
		
		if (isKingKong(list) >= 0) {
			return new FinalCard(list, FinalCardType.KINGKONG);
		}
		
		if (isFullHouse(list) >= 0) {
			return new FinalCard(list, FinalCardType.FULLHOUSE);
		}
		
		if (isFlush(list) >= 0) {
			return new FinalCard(list, FinalCardType.FLUSH);
		}
		
		if (isStraight(list) >= 0) {
			return new FinalCard(list, FinalCardType.STRAIGHT);
		}
		
		if (isSet(list) >= 0) {
			return new FinalCard(list, FinalCardType.SET);
		}
		
		if (isTwoPairs(list) >= 0) {
			return new FinalCard(list, FinalCardType.TWO_PAIRS);
		}
		
		if (isOnePair(list) >= 0) {
			return new FinalCard(list, FinalCardType.ONE_PAIR);
		}
		
		if (isHighCard(list) >= 0) {
			return new FinalCard(list, FinalCardType.HICH_CARD);
		}
		
		System.out.println("Error when check effetive card type! Unknown type!");
		
		return null;
	}