当hashMap在类而不是main中时,如何填充hashMap?

时间:2016-05-02 14:34:04

标签: java hashmap

当我在main中创建这个hashMap时,一切都很完美

    HashMap<String, Furgoneta> mapper = new HashMap<>();
    LocalDate f1 = LocalDate.of(2013, Month.JANUARY, 1);
    LocalDate f2 = LocalDate.of(2016, Month.FEBRUARY, 10);
    Furgoneta furgo1 = new Furgoneta("0001AAA", "Seat", "Ibiza", false, f1, f2, 3100);


    //FILLING HASHMAP
    mapper.put(furgo1.getMatricula(), furgo1);
    System.out.println(mapper.toString());

当我尝试在类中编写相同的代码而不是main时,put会无法正常工作(无法填充hashmap)

    //FILLING HASHMAP
    mapper.put(furgo1.getMatricula(), furgo1);
    System.out.println(mapper.toString());
对象furgoneta(意为范)

public class Furgoneta extends VehiculoAlquiler implements Serializable    
{
    private int mma;


    //constructor
    public Furgoneta(String matricula, String marca, String modelo, boolean alquilado, 
            LocalDate fechaI, LocalDate fechaF,int mma ) {
        super(matricula, marca, modelo, alquilado, fechaI, fechaF);
        this.mma = mma;
    }

    public int getMma() {
        return mma;
    }

如果我写这个主要工作

    HashMap<String, Furgoneta> furgonetas = new HashMap<>();
    LocalDate f1 = LocalDate.of(2013, Month.JANUARY, 1);
    LocalDate f2 = LocalDate.of(2016, Month.FEBRUARY, 10);
    Furgoneta furgo1 = new Furgoneta("0001AAA", "Seat", "Ibiza", false, f1, f2, 3100);


    //Las introducimos en la HashMap
    furgonetas.put(furgo1.getMatricula(), furgo1);
    System.out.println(furgonetas.toString());


    furgo1.importeAlquiler(f1, f2);

但是我想完全相同,但是在一个不在主

中的类中使用hashMap

我无法填写我创建的hashmap。如果hashmap在main里面我可以填写它,但如果我尝试在一个类而不是main中编写hashmap并填充它,当我试图填写它时说&#34; package mapper不存在&#34;和#34;包furgo1不退出&#34;当mapper是hashmap名称而furgo1是一个对象

我看不出自己的错误,我真的很感激一些帮助,我被困在这里好几个小时。对不起,如果我第一次问起来很困惑

1 个答案:

答案 0 :(得分:0)

你可以这样做:

Map<String, String> map = new HashMap<String, String>() {{
   put("1", "one");
   put("2", "two");
   put("3", "three");
}};

它被称为“双支撑初始化”

  

第一个大括号创建一个新的AnonymousInnerClass,第二个大括号声明在实例化匿名内部类时运行的实例初始化程序块。