How to refactor this HashSet in Java
•
Java
I'm new to Java I have a HashSet method. I want to know a better method to encode the following code:
public HashSet<Guitar> getGuitars() { HashSet<Guitar> guitarInformations = new HashSet<Guitar>(); Guitar guitar1 = new Guitar("Gibson",100,"1987"); Guitar guitar2 = new Guitar("Gibson",200,"1976"); Guitar guitar3 = new Guitar("Gibson",300,"1978"); Guitar guitar4 = new Guitar("Gibson",400,"1967"); Guitar guitar5 = new Guitar("Gibson",500,"1967"); Guitar guitar6 = new Guitar("Fender","1922"); Guitar guitar7 = new Guitar("Fender","1999"); Guitar guitar8 = new Guitar("Fender","1986"); Guitar guitar9 = new Guitar("Fender","1933"); Guitar guitar10 = new Guitar("Fender","1988"); guitarInformations.add(guitar1); guitarInformations.add(guitar2); guitarInformations.add(guitar3); guitarInformations.add(guitar4); guitarInformations.add(guitar5); guitarInformations.add(guitar6); guitarInformations.add(guitar7); guitarInformations.add(guitar8); guitarInformations.add(guitar9); guitarInformations.add(guitar10); return guitarInformations; }
What is the most effective way to do such a thing?
Solution
I can use:
return new HashSet(Arrays.asList( new Guitar("Gibson","1987"),new Guitar("Gibson","1976"),"1978"),"1967"),"1967")));
Of course, if you will never modify your collection, it will be more effective if you treat it as a constant:
private static final Set<Guitar> GUITARS = Collections.unmodifiableSet(new HashSet(Arrays.asList( ... public Set<Guitar> getGuitars() { return GUITARS; }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码