如何在Java中重构这个HashSet

我是 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","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;
}

做这样的事最有效的方法是什么?

解决方法

我会用:

return new HashSet(Arrays.asList(
    new guitar("Gibson","1987"),new guitar("Gibson","1976"),"1978"),"1967"),"1967")));

当然,如果你永远不会修改你的集合,那么如果你把它作为一个常量会更有效:

private static final Set<guitar> guitarS = 
   Collections.unmodifiableSet(new HashSet(Arrays.asList(
      ...

 public Set<guitar> getguitars() {
     return guitarS;
 }

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...