Rule of thumb, list (or other collection/datastructure) of objects is preferred in OOP.
Parallel arrays are almost always a bad idea, especially if you're sorting n arrays based on another's index.
2D arrays have no place here. one obvious reason is the datatype restriction. what if item numbers aren't necessarily integers (eg: UPC)? and the more columns you add, the more likely you'll need different datatypes. But more importantly, you shouldn't be associating different attributes in an array like that unless it's necessary.
as for "faster", it's irrelevant for an example like this.
This post was edited by carteblanche on Jan 5 2014 03:14pm