Currently I have an algorithm which somewhat looks like web-spiders or file search systems – it has a collection of the elements to process and processing elements can lead to enqueuing more elements.
However this algorithm is single threaded – it’s because I fetch data from the db and would like to have only single db connection at once.
In my current situation performance is not critical – I’m doing this only for the visualization purposes to ease up debugging.
For me it seems natural to use queue abstraction, however it’s seems that using queues implies multithreading – as I understand, most of standard java queue implementations reside in java.util.concurrent package.

I understand that I can go on with any data structure that support pull and push but I would like to know what data structure is more natural to use in this case(is it ok to use a queue in a single threaded application?).
Queue is defined in java.util. LinkedList is a Queue and not very concurrency-friendly. None of the Queue method blocks, so they should be safe from a single threaded perspective.