我怎么能存储的HashMap (How can I store HashMap>

2019-09-02 19:08发布

我的HashMap中存储的字符串作为关键和ArrayList的值。 现在,我需要嵌入到一个列表这一点。 也就是说,这将是以下形式:

List<HashMap<String, ArrayList<String>>>

这是我曾经用过的声明:

Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> arraylist = new ArrayList<String>();
map.put(key,arraylist);
List<String> list = new ArrayList<String>();

谁能帮我如何使用列表中进行储存我的地图在它之上的方法和?

Answer 1:

总是试图在收藏使用的界面参考 ,这增加了更多的灵活性。
什么是与下面的代码的问题?

List<Map<String,List<String>>> list = new ArrayList<Map<String,List<String>>>();//This is the final list you need
Map<String, List<String>> map1 = new HashMap<String, List<String>>();//This is one instance of the  map you want to store in the above list.
List<String> arraylist1 = new ArrayList<String>();
arraylist1.add("Text1");//And so on..
map1.put("key1",arraylist1);
//And so on...
list.add(map1);//In this way you can add.

您可以轻松地做到这一点像上面。



Answer 2:

首先,让我解决一点点你的宣言:

List<Map<String, List<String>>> listOfMapOfList = 
    new HashList<Map<String, List<String>>>();

请注意,我用具体的类( HashMap )只有一次。 使用的界面,在这里你可以为以后能够改变实现是非常重要的。

现在你要元素添加到列表中,不是吗? 但该元素是地图,所以你必须创建它:

Map<String, List<String>> mapOfList = new HashMap<String, List<String>>();

现在你要填充地图。 幸运的是,你可以使用的工具,为您创建列表,否则你必须单独创建列表:

mapOfList.put("mykey", Arrays.asList("one", "two", "three"));

OK,现在我们已经准备好地图添加到列表:

listOfMapOfList.add(mapOfList);

但:

马上停下创建复杂的集合! 想想未来:你可能要改变内部映射到别的东西或列表设置等信息,这可能会导致你到你的代码重新写显著部分。 相反,定义一个包含你的数据类,然后将其添加到一个立体的集合:

让我们把你的班级Student (就像为例):

public Student {
    private String firstName;
    private String lastName;
    private int studentId;

    private Colectiuon<String> courseworks = Collections.emtpyList();

    //constructors, getters, setters etc
}

现在,您可以定义简单的集合:

Collection<Student> students = new ArrayList<Student>();

如果将来你想要把你的学生进入地图,关键是studentId ,做到这一点:

Map<Integer, Student> students = new HashMap<Integer, Student>();


Answer 3:

尝试以下方法:

List<Map<String, ArrayList<String>>> mapList = 
    new ArrayList<Map<String, ArrayList<String>>>();
mapList.add(map);

如果您的列表必须是类型List<HashMap<String, ArrayList<String>>> ,然后声明您的map变量作为一个HashMap ,而不是一个Map



Answer 4:

首先,你需要定义List如下:

List<Map<String, ArrayList<String>>> list = new ArrayList<>();

要添加MapList ,使用添加(E E)方法:

list.add(map);


Answer 5:

class Student{
    //instance variable or data members.

    Map<Integer, List<Object>> mapp = new HashMap<Integer, List<Object>>();
    Scanner s1 = new Scanner(System.in);
    String name = s1.nextLine();
    int regno ;
    int mark1;
    int mark2;
    int total;
    List<Object> list = new ArrayList<Object>();
    mapp.put(regno,list); //what wrong in this part?
    list.add(mark1);
    list.add(mark2);**
    //String mark2=mapp.get(regno)[2];
}


文章来源: How can I store HashMap> inside a list?