   Debating on which collection class to use for project
I have a project in Java that requires these features to be operated on one-variable polynomials 1) Input a polynomial2) Print a polynomial3) Add two polynomials4) Subtract two polynomials5) Multiply two polynomials6) Find a derivative of a polynomial7) Evaluate a polynomial at a specific value My professor suggested using the Vector Class but I did research and Vector are usually used in a multi-threaded environment and there is an synchronized overhead on individual operation but given the features involved in this project does not require multi-threading or any type of threading. I saw no problems reading about ArrayList. ArrayList are good to use in single-threaded environment and also given my experience using it. Based on my research, ArrayList has all the benefits in the world for these features. I'm in a conundrum right now. I need advice.  
What advice? You already know the better choice, and why it's the better choice. (Not that it really matters which you use, obviously the exercise is not about performance and either would work equally well.);  Does performance matter in this project? Will using one over the other give significant human observable performance penalties? If not, then it probably does not matter.   ;I have a project in Java that requires these features to be operated on one-variable polynomials 1) Input a polynomial2) Print a polynomial3) Add two polynomials4) Subtract two polynomials5) Multiply two polynomials6) Find a derivative of a polynomial7) Evaluate a polynomial at a specific value My professor suggested using the Vector Class but I did research and Vector are usually used in a multi-threaded environment and there is an synchronized overhead on individual operation but given the features involved in this project does not require multi-threading or any type of threading. I saw no problems reading about ArrayList. ArrayList are good to use in single-threaded environment and also given my experience using it. Based on my research, ArrayList has all the benefits in the world for these features. I'm in a conundrum right now. I need advice.Make small subsets of your project using both approaches and see which ones suit you best. As for the performance hit, unless your project has timing restrictions (which I doubt), it doesn't really matter.   ;Thanks;  You don't have to worry about multiple threads: first because it doesn't seem to be a requirement of your exercise, second because if the need arises you can define a Polynomial class and put synchronized {} blocks where you really need them. Hint: your polynomials are almost read-only.   