Don't think of Map
as a data structure. Think of it as any other class that has methods, for example put(..)
. Are you saying that if you had
public class Foo {
public void bar() {}
}
you shouldn't be able to call bar()
on
final Foo foo = new Foo();
simply because it's final
? What use would it have then?
The final
keyword only prevents a variable from being reassigned, not what methods can be called or what fields can be accessed. It has a different meaning when used on on methods and classes.
As for static
, read: