In general, you can use it on some specific situations where you feel
you should use it. For an example, suppose a scenario like this - suppose that you have a
Java web based application, and you need to display something like "quotation of the hour" on the home page. You get these quotations via RSS feeds of some other external sources, and the quotation on your home page should be updated once per hour. In this case, you can maintain a collection. Your program adds new quotations to the collection as soon as it gets some new quotations via RSS feeds - so the the collection will never get empty. At the begining of each hour, another
thread can get a quotation from that collection and display it on the home page. If you don't need to display the same quotation for many times, you can use the pollFirst() method to get the quotation for each hour. It simply gets a quotation from the collection and removes it - so you don't get that same quotation again.
I know it isn't much practical as you may not do all of these things just on a collection instance. But hope you got an idea of how it can be used usefully
Devaka