我对Java很陌生。我有一种HashSet方法,并想知道一种更好的编码方法:
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", 100, "1922");
Guitar guitar7 = new Guitar("Fender", 200, "1999");
Guitar guitar8 = new Guitar("Fender", 300, "1986");
Guitar guitar9 = new Guitar("Fender", 400, "1933");
Guitar guitar10 = new Guitar("Fender",500, "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;
}做这种事最有效的方法是什么?
发布于 2015-04-13 04:57:08
我会用:
return new HashSet(Arrays.asList(
new Guitar("Gibson", 100, "1987"),
new Guitar("Gibson", 200, "1976"),
new Guitar("Gibson", 300, "1978"),
new Guitar("Gibson", 400, "1967"),
new Guitar("Gibson", 500, "1967")));当然,如果您永远不会修改您的集合,如果将它作为常量,它将更有效:
private static final Set<Guitar> GUITARS =
Collections.unmodifiableSet(new HashSet(Arrays.asList(
...
public Set<Guitar> getGuitars() {
return GUITARS;
}发布于 2015-04-13 05:01:22
如果希望同时向HashSet添加所有元素,则可以使用Arrays.asList。请查看此问题,以供参考:
发布于 2015-04-13 05:23:09
我建议使用番石榴的ImmutableSet生成器
public static final ImmutableSet<Guitar> GUITARS= ImmutableSet.of(
new Guitar("Gibson", 100, "1987"),
new Guitar("Gibson", 200, "1976"),
new Guitar("Gibson", 300, "1978"),
new Guitar("Gibson", 400, "1967"),
new Guitar("Gibson", 500, "1967"));https://stackoverflow.com/questions/29598023
复制相似问题