代码之家  ›  专栏  ›  技术社区  ›  Thalaivar

Arraylist中的HashMap

  •  2
  • Thalaivar  · 技术社区  · 15 年前
    ArrayList<HashMap<String, String>> 
    arrayListRowsFirst = new ArrayList<HashMap<String, String>>();
    

    今天当我在看一段代码的时候,这段代码让我震惊了一段时间。以下是我对这份声明的一些问题。

    1. 如果必须将HashMap附加到ArrayList中,可能需要什么。
    2. 在arraylist的排序过程中会发生什么,它将如何进行,将需要很长时间。
    5 回复  |  直到 15 年前
        1
  •  5
  •   corsiKa    15 年前

    首先,在我看来,“通用链接”是一种糟糕的做法。我鼓励将HashMap封装在一个类中,该类将数据封装在其中,从而允许操作逻辑位于类中,而不是散落在任何地方。

    为了回答“1”,我可以想到许多场景。例如,您可能有一些语言,将某些常量映射到其他翻译。它将行放在标识符的第一位,这让我认为它可能是某种数据矩阵,并且第一个字符串参数将存在于列表的所有条目中(实际上这是一种糟糕的做法) 编辑:看来我误解了你的问题。您可以像添加其他条目一样添加它。查看其他人的答案,例如代码。:-)

    回答#2,除非您能够提供一个比较器,否则您将无法对ArrayList进行排序,此时排序方式取决于您(可以是大小,可以是特定键的值,可以是Math.random(),由编写比较器的人决定)。

        2
  •  1
  •   Colin Hebert    15 年前

    ArrayList .

    两个都不是 Map HashMap 工具 Comparable ,因此如果要对ArrayList进行排序,则必须创建自己的 Comparator

    对…的排序 List 其中包含 会完全一样 威奇还有别的东西。

        3
  •  1
  •   Paul Tomblin    15 年前

    “将HashMap附加到ArrayList”是什么意思?向ArrayList添加HashMaps的方式与向列表添加任何对象的方式相同

    HashMap<String,String> hm = new HashMap<String,String>();
    arrayListRowsFirst.add(hm);
    

    对数组列表的排序与对任何其他数组列表的排序一样-您需要定义一个比较两个哈希映射的比较器,并使用Collections.sort与该比较器进行排序。需要多长时间将在很大程度上取决于您如何比较哈希映射。

        4
  •  1
  •   Tyler Treat    15 年前
    1. 使用 add()

    2. 您需要创建一个比较器,这样您的HashMaps就可以排序了。

        5
  •  1
  •   hvgotcodes    15 年前

    声明应该是

    List<Map<String, String>>
    

    1要在列表中添加地图,只需执行以下操作

    Map<String, String> map = new HashMap<String, String>();
    list.add(map);