Java equivalent of Perl's hash

前端 未结 8 1294
粉色の甜心
粉色の甜心 2021-01-18 02:05

I\'ve been using a lot Perl hashes due to super flexibility and convenient. for instance, in Perl I can do the following:

$hash{AREA_CODE}->{PHONE}->{S         


        
8条回答
  •  花落未央
    2021-01-18 02:06

    I've been using a lot Perl hashes due to super flexibility and convenient. for instance, in Perl I can do the following: $hash{AREA_CODE}->{PHONE}->{STREET_ADDR} I wondering how can I accomplish the same thing with Java, I guess it has something to do with HashMap?

    The Java code which approximates the following Perl code:

    my %hash;
    $hash{AREA_CODE}{PHONE}{STREET_ADDR} = "221B Baker Street";
    printf "Street address is %s\n", $hash{AREA_CODE}{PHONE}{STREET_ADDR};
    

    is

    HashMap>> hash =
        new HashMap>>();
    
    hash.put("AREA_CODE", new HashMap>());
    hash.get("AREA_CODE").put("PHONE", new HashMap());
    hash.get("AREA_CODE").get("PHONE").put("STREET_ADDR", "221B Baker Street");
    
    System.out.printf("Street address is %s\n",
        hash.get("AREA_CODE").get("PHONE").get("STREET_ADDR"));
    

    Isn’t that special? :)

    I say ‘approximates’ for many reasons. One of these is that in Java you’ll be frustrated to the point of extreme apoplexy merely for wanting to then do on the next line of Java the equivalent of this perfectly straightforward Perl code:

    $hash{AREA_CODE}{PREFIX} = 800;
    

    If you want Perl’s flexibility and convenience in things like this, Java simply isn’t going to give it to you. Even worse, its partisans will often berate you for even expressing such a desire.

提交回复
热议问题