Q:

Java Generics, must a Class using Generics always be a Container of some type?

It is pretty obvious that like an ArrayList is a container full of items of type "Generics". 
How can a class make use of Generics except being a container? Any common usages? 
Thanks!

A:

One simple example is Comparable<T>
public class Person implements Comparable<Person>

That allows you to compare one person with another in a natural way.
Likewise there's Comparator<T>:
public class NameComparator implements Comparator<Person>

That allows you to compare any two people in a specific way. Neither of those interfaces is about a "container".
Then there are types like Future<V>, representing the promise of a value of type V at some point in the future (basically an asynchronous operation). Now you could think of this as a kind of container, but it's not a collection...
Fundamentally, generics are useful whenever you have an operation or type which is usefully parameterized by type (possibly with constraints) in order to maintain type safety, but can work with various different type arguments for that type parameter.

