java - 创建单个列表的列表以在 HashMap 中使用

标签 java list arraylist 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,但没有成功。 我什至尝试创建一个新类,其成员为 int ,以及 ArrayList<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>>子列表周围没有类型安全(因为您有整数和列表)?

简单地说,这听起来过于复杂。它们没有集合,因此您可以为所有数据嵌套它们,如果您确实想让数据变得简单,请使用一个类来表示它,并将该类存储在 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<>();

关于java - 创建单个列表的列表以在 HashMap 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583348/

相关文章:

java - 为什么我在这里得到 NullPointerException

java - 如果只有 Class<Annotation> 可用,如何传递 Annotation 对象?

java - 我希望计算器重新启动,直到我按下 'q' 字母

C# 元组列表多重排序

c# - 需要从 C# 中的 ArrayList 中删除值

java - 避免对大型日志消息进行字符串连接

Python ftp 只列出目录而不是文件

python - 比较和排序数组

Java:我应该使用什么类型作为可调整大小的基元列表?

java - Array List .remove 函数不会完全删除元素,在 JTable 中留下空白空间