Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 混淆双括号初始化数组_Java_Android - Fatal编程技术网

Java 混淆双括号初始化数组

Java 混淆双括号初始化数组,java,android,Java,Android,我对这个包含数组列表的hashmap有点困惑。我希望动态添加每个条目 我尝试了很多次,但无法动态添加条目。有什么建议吗 HashMap<String, List<Attraction>> ATTRACTIONS = new HashMap<String, List<Attraction>>() {{ put("Sydney", new ArrayList<Attr

我对这个包含数组列表的hashmap有点困惑。我希望动态添加每个条目

我尝试了很多次,但无法动态添加条目。有什么建议吗

   HashMap<String, List<Attraction>> ATTRACTIONS =
                new HashMap<String, List<Attraction>>() {{

                    put("Sydney", new ArrayList<Attraction>() {{
                        add(new Attraction(
                                "Sydney Opera House",
                                "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae bibendum justo, vitae cursus velit. Suspendisse potenti.",
                                "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae bibendum justo, vitae cursus velit. Suspendisse potenti. Suspendisse scelerisque risus justo, non tincidunt nibh blandit et. Vivamus elit lacus, luctus nec erat in, pharetra semper turpis. Quisque viverra nulla ligula, non pulvinar ante dictum sit amet. Vestibulum aliquet tortor mauris, vel suscipit nisl malesuada eget. Aliquam maximus dictum euismod. Maecenas leo quam, volutpat id diam eget, placerat fringilla ipsum. Nam pretium vehicula augue quis euismod.\n\nNam sed blandit magna. Vestibulum a fermentum arcu. Vestibulum et ligula at nisi luctus facilisis. Proin fermentum enim a nibh commodo finibus. Suspendisse justo elit, vulputate ut ipsum at, pellentesque auctor massa. Praesent vestibulum erat interdum imperdiet dapibus. In hac habitasse platea dictumst. Proin varius orci vitae tempor vulputate.\n\nEtiam sed mollis orci. Integer et ex sed tortor scelerisque blandit semper id libero. Nulla facilisi. Pellentesque tempor magna eget massa ultrices, et efficitur lectus finibus.",
                                Uri.parse("https://lh5.googleusercontent.com/-7fb5ybQhUbo/VGLWjIL4RmI/AAAAAAAAACM/2jLe_msj_tk/w600-no/IMG_0049.JPG"),
                                Uri.parse("https://lh3.googleusercontent.com/-EFEw6s7mT6I/VGLkCH4Xt4I/AAAAAAAAADY/ZlznhaQvb8E/w600-no/DSC_2775.JPG"),
                                new LatLng(-33.858667, 151.214028),
                                "Sydney"
                        ));
                    }});

                }};
HashMap=
新HashMap(){{
put(“悉尼”,新ArrayList(){{
增加(新的吸引力)(
“悉尼歌剧院”,
“Lorem ipsum dolor sit amet,奉献精英。我的生命是美好的,我的生命是美好的。我的潜力是无限的。”,
“Lorem ipsum door sit amet,concertetur adipising elit.Sed vitae bibendum justo,vitae cursus velit.Suspendisse potenti.Suspendisse scelerisque risus justo,non tincidut nibh blandit et.Vivamus elit lacus,luctus nec erat in,pharetra semper turpis.quisquera viverra nulla ligula,non pulvinar ante pret dictum sat ametauris,vel suscipit nisl malesuada eget.Aliquam maximus dictum euismod.Maecenas leo quam,Volumpat id diam eget,placerat fringilla ipsum.Nam pretium Vehicle augue quis euismod.\n\n一个温和的大前庭,一个发酵弧,一个发酵弧,一个前庭和叶舌,在nisi luctus facilisis.一个发酵的前庭和叶舌,一个普通的前庭,一个发酵的前庭,一个普通的前庭,一个末端,一个悬着的悬着它是由一位拍卖人在拍卖时用同一个词表示的。它是由一位拍卖人在拍卖时用同一个词表示的。它是由一位拍卖人用同一个词表示的。它是由一位拍卖人用同一个词表示的。它是由一位拍卖人用同一个词表示的",,
解析https://lh5.googleusercontent.com/-7fb5ybQhUbo/VGLWjIL4RmI/AAAAAAAAACM/2jLe_msj_tk/w600-no/IMG_0049.JPG"),
解析https://lh3.googleusercontent.com/-EFEw6s7mT6I/VGLkCH4Xt4I/AAAAAAAAADY/ZlznhaQvb8E/w600-no/DSC_2775.JPG"),
新车床(-33.858667151.214028),
“悉尼”
));
}});
}};

我试着用其他的方法,但我希望这样的东西没有黑客

如果没有双括号,您可能会这样写

Map<String, List<Attraction>> ATTRACTIONS = new HashMap<>();
List<Attraction> al = new ArrayList<>();
al.add(new Attraction("Sydney Opera House",
    "Lorem ipsum ...",
    "Lorem ipsum ...",
    Uri.parse(
        "https://lh5.googleusercontent.com/-7fb5ybQhUbo/VGLWjIL4RmI/AAAAAAAAACM/2jLe_msj_tk/w600-no/IMG_0049.JPG"),
    Uri.parse(
        "https://lh3.googleusercontent.com/-EFEw6s7mT6I/VGLkCH4Xt4I/AAAAAAAAADY/ZlznhaQvb8E/w600-no/DSC_2775.JPG"),
    new LatLng(-33.858667, 151.214028), "Sydney"));
ATTRACTIONS.put("Sydney", al);
Map ATTRACTIONS=newhashmap();
List al=新的ArrayList();
新增(新景点(“悉尼歌剧院”),
“Lorem ipsum…”,
“Lorem ipsum…”,
Uri.parse(
"https://lh5.googleusercontent.com/-7fb5ybQhUbo/VGLWjIL4RmI/AAAAAAAAACM/2jLe_msj_tk/w600-no/IMG_0049.JPG"),
Uri.parse(
"https://lh3.googleusercontent.com/-EFEw6s7mT6I/VGLkCH4Xt4I/AAAAAAAAADY/ZlznhaQvb8E/w600-no/DSC_2775.JPG"),
新莱特宁(跌33.858667151.214028),"悉尼";;
景点。put(“悉尼”,al);

如果您想为“悉尼”添加另一个景点,请将其添加到
al
。如果您想将另一个城市添加到您的
景点
中,请确保创建一个
新列表

如果我们解释一下“双括号黑客”实际上在做什么,可能会有所帮助。下面是一个简单的例子:

Map<String, String> test =
            new HashMap<String, String>() 
{
    {
        put("key", "value");
        put("key2", "value2");
    }
};
对于列表,您可以使用
add
而不是
put
。但是,还有另一种(IMO)更简单的方法来创建预填充列表:

  List<String> test2 = Arrays.asList(new String[]{"One", "Two", "Tree"});
List test2=Arrays.asList(新字符串[]{“一”、“二”、“树”});

然后不要使用双括号初始化hack。我尝试过使用其他方法,但我正在寻找没有hack的类似方法,这意味着我尝试了thisArrayList=new ArrayList();对于(int i=0;i<10;i++){list.add(new Object());}和许多其他方法,但我只是不明白这是如何工作的,所以我可以动态地重建它……正确地说,我尝试过类似的方法。使用不同的方法添加我自己的条目没有问题。我只是希望循环并添加每个条目。这就是我迷路的地方。添加时循环似乎不适用entries@scooter调用
new Attraction
al.add
的代码应该在循环中(添加
Attraction
s)。似乎我对put参数中的内容感到困惑。谢谢,伙计
  List<String> test2 = Arrays.asList(new String[]{"One", "Two", "Tree"});