Reformat like standard Java.
Run benchmark 10 times.
Replace Strength class with an enum.
Reduce intermediate collections when populating Plan objects.
Defer creation of Plan's ArrayList until needed.
Eliminate Plan object by extending ArrayList.
Share intermediate ArrayLists used only for temp space.
Use List.remove instead of iterating.