簡體   English   中英

創建要在HashMap中使用的單個列表的列表

[英]Create a list of single lists for use in a HashMap

我嘗試實現像HashMap<String,MyBigList>這樣的hashmap

但是我無法形成MyBigList。 以下是我要創建的確切的HashMap。

{word=[ [1, [0, 2] ], [ 2, [2]] ], word2=[ [ 1, [1] ] ]}

我想要一個像下面這樣的大列表

[ [single list], [single list], .. ]

以及包含一個int和一個int列表的單個列表

[single list] = [1, [0,2]]

我嘗試在ArrayList內的ArrayList內使用ArrayList,但沒有用。 我什至嘗試創建一個具有intArrayList<Integer>作為成員的新類,但是它也不起作用。

import java.util.ArrayList;
import java.util.HashMap;

public class NewClass {
    int id;
    ArrayList<Integer> posList;

    public NewClass(){

        this.id = 0;
        this.posList = new ArrayList<Integer>();
    }

    public NewClass(int _id, int a, int b){
        id = _id;
        this.posList = new ArrayList<Integer>();
        posList.add(a);
        posList.add(b);
    }

    public String toString(){
        return "" + this.id + " " + this.posList;
    }
    public static void main(String[] args) {

        NewClass n = new NewClass(1,2,3);
        HashMap<String,ArrayList<ArrayList<NewClass>>> map = new HashMap<String,ArrayList<ArrayList<NewClass>>>();
        ArrayList<ArrayList<NewClass>> bigList = new ArrayList<ArrayList<NewClass>>();
        ArrayList<NewClass> nList = new ArrayList<NewClass>();
        nList.add(n);
        nList.add(n);
        bigList.add(nList);
        map.put("word", bigList);

        System.out.println(map);
    }
}

產生

{word = [[1 [2,3],1 [2,3]]]}

那么Map<String, List<Object>>在子列表周圍沒有類型安全性(看到您有整數和列表)?

聽起來太復雜了。 它們沒有Collections,因此您可以將它們嵌套在所有數據中,如果您真的想簡化數據,可以使用一個類來表示它,然后使用某個方面作為鍵將其存儲在Map

public class MyClass {

    private final String word;

    public MyClass(String word) {
        this.word = word;
    }

    // Other Data needed

    public String getWord() { return this.word; }

}

//In another class
Map<String, MyClass> words = new HashMap<>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM