I ended up using a LinkedHashMap, that way if I ever need something similar that uses anything other than integers it will be easy to plug items in.
public class LottoBean {
private Integer[] numbers;
private int[] actual = new int[6];
private Random generator;
private static Map<Integer,Integer> numbersName;
static
{
numbersName = new LinkedHashMap<Integer,Integer>();
for (int i = 1; i < 51; i++)
{
numbersName.put(i,i);
}
}
/*
* returns Integer array
*/
public Integer[] getNumbers()
{
return numbers;
}
/*
* Sets array to numbers picked
*/
public void setNumbers(Integer[] numbers)
{
this.numbers = numbers;
}
/**
* Returns map
* @return numbersName
*/
public Map<Integer,Integer> getNumbersName()
{
return numbersName;
}
/**
* Returns the numbers array
* @return the numbers array in string form
*/
public String getNumbersNameArray()
{
return Arrays.toString(numbers);
}
/**
* Generates numbers drawn
* @return actual the numbers drawn
*/
public String getActualNumbersArray()
{
for (int i = 0; i < 6; i++)
{
generator = new Random();
int number = 1 + generator.nextInt(50);
actual[i] = number;
}
return Arrays.toString(actual);
}
/**
* Compares numbers picked to numbers drawn
* @return the number of matching numbers
*/
public int getSame()
{
int same = 0;
for (int i = 0; i < numbers.length; i++)
{
for(int j = 0; j < actual.length; j++)
{
if (numbers[i] == actual[j])
{
same++;
}
}
}
return same;
}
}
index...
<head>
<title>Lotto Numbers</title>
</head>
<body>
<h:form>
<p>
Pick six numbers from the list:
</p>
<h:selectManyCheckbox id="chkbox1" value="#{lottoNumbers.numbers}"
required="true" requiredMessage="check exactly six numbers"
layout="lineDirection" border="1" readonly="false">
<f:selectItems value="#{lottoNumbers.numbersName}"/>
</h:selectManyCheckbox>
<h:message for="chkbox1" style="color:red"/>
<br/><br/>
<h:commandButton value="submit" action="next" />
</h:form>
</body>
</html>
and next...
<head>
<title>Lotto Numbers</title>
</head>
<body>
<h:form>
<p>
<h:outputText value="You have selected : #{lottoNumbers.numbersNameArray}" />
</p>
<h:outputText value="Actual numbers : #{lottoNumbers.actualNumbersArray}" />
<p>
<h:inputText value="Matching numbers : #{lottoNumbers.same}" />
</p>
</h:form>
</body>
</html>