如何在Java中重构此哈希集
我是Java新手。我有一个HashSet方法,想知道一种更好的编码以下代码的方法:如何在Java中重构此哈希集,java,Java,我是Java新手。我有一个HashSet方法,想知道一种更好的编码以下代码的方法: public HashSet<Guitar> getGuitars() { HashSet<Guitar> guitarInformations = new HashSet<Guitar>(); Guitar guitar1 = new Guitar("Gibson", 100, "1987"); Guitar guitar2 = new Guitar
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;
}
public HashSet getGuitars(){
HashSet=newhashset();
吉他吉他1=新吉他(“吉布森”,100,“1987”);
吉他吉他2=新吉他(“吉布森”,200,“1976”);
吉他吉他3=新吉他(“吉布森”,300,“1978”);
吉他吉他4=新吉他(“吉布森”,400,“1967”);
吉他吉他5=新吉他(“吉布森”,500,“1967”);
吉他吉他6=新吉他(“Fender”,100,“1922”);
吉他吉他7=新吉他(“Fender”,200,“1999”);
吉他吉他8=新吉他(“挡泥板”,300,“1986”);
吉他吉他9=新吉他(“挡泥板”,400,“1933”);
吉他吉他10=新吉他(“Fender”,500,“1988”);
添加(guitar1);
添加(guitar2);
添加(guitar3);
添加(guitar4);
添加(guitar5);
添加(guitar6);
添加(guitar7);
添加(guitar8);
添加(guitar9);
添加(guitar10);
返回吉他手信息;
}
这样做最有效的方法是什么?我会使用:
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;
}
private static final Set GUITARS=
Collections.unmodifiableSet(新哈希集(Arrays.asList(
...
公共集getGuitars(){
返回吉他;
}
如果要同时将所有元素添加到HashSet,可以使用Arrays.asList。检查此问题以供参考:
我建议用番石榴汁 公共静态最终ImmutableSet GUITARS=ImmutableSet.of( 新吉他(“吉布森”,100,“1987”), 新吉他(“吉布森”,200,“1976”), 新吉他(“吉布森”,300,“1978”), 新吉他(“吉布森”,400,“1967”), 新吉他(“吉布森”,500,“1967”);
可能直接在new?guitarInformations.add(new Guitari(“Gibson”,100,“1987”))之后添加;我非常喜欢使用as array.asList。它使代码看起来更干净。
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"));