Best way to optimize code as well as reduce amount of code you have to write: use math.
ex.:
if(face == 1)
{
faceVal[0]++;
}
else if(face == 2)
{
faceVal[1]++;
}
else if(face == 3)
{
faceVal[2]++;
}
else if(face == 4)
{
faceVal[3]++;
}
else if(face == 5)
{
faceVal[4]++;
}
else if(face == 6)
{
faceVal[5]++;
}
These if/else statements are completely unnecessary, and quite frankly make your code difficult to read and maintain. Find the relationship between the value of face vs. the index in faceVal that needs to be incremented.
then change it to a single statement:
faceVal[some_index]++; // what should some_index equal? hint: it involves the value of face
As far as displaying output in other methods, it's something I tend to avoid. The purpose of helper methods is to allow your code to compute something that can be useful later. That's not to say that you can't have methods which produce side effects being called from somewhere else other than the main method (it's very common in GUI programming), but you should try to separate methods which generate side-effects from methods which perform computation (aka. represent some model).
So in your code I would have faceValue return the array faceVal, then call display(faceValue()) in your main method. This design aspect is more generally know as the "Model-View-Controller" or MVC design method, where the model represents the underlying data structure and computation, the view is the interface (gui, console, etc.), and the controller links the two and passes communications between the two. The model should have no knowledge of the view or controller and the view should have no knowledge of the model or controller. Only the controller needs to have knowledge of both in order to perform its job.
fyi: this last bit isn't just java etiquette, it's a general programming design philosophy.