Run-of-the-mill J2SE
Java is not best suited to real-time programming, but you probably know that already. If you do want to use it have a look at the -Xgcinc switch. You may also be interested in
the Real Time Java Specification.
Back to your question. An array is fastest, full stop. Question is, do you need it? I don't know what form your data takes and how stringent your real-time requirements are.
Assuming it's basically a large amount of simple numerical data - say, from a bunch of A/D converters - then an array has a huge advantage over any collection type: it can store primitive types (int,...). If you'd want store integers in a Vector, you'd need to instantiate Integer wrapper objects for all of them. Ouch.
If on the other hand you have a moderate flow of complicated or large chunks of data then modeling them as objects could be a good idea. If so, an ArrayList could be considered as an alternative to an array.
Whatever you do you'll have to take care of presizing - resizing a list is a costly operation that you might not be able to afford.
- Peter