Java 使用字符串将对象添加到列表

Java 使用字符串将对象添加到列表,java,Java,我有以下定义,这很好 private List<Map<String, String>> list = new ArrayList<Map<String, String>>(); private List=new ArrayList(); 但是现在我需要扩展它,第一个字符串也应该是type list。 我已尝试使用以下代码,添加新列表并更改要保留的第一个字符串 列表没有显示,但我有一些错误 private Map<String, Stri

我有以下定义,这很好

private List<Map<String, String>> list = new ArrayList<Map<String, String>>();
private List=new ArrayList();
但是现在我需要扩展它,第一个字符串也应该是type list。 我已尝试使用以下代码,添加新列表并更改要保留的第一个字符串 列表没有显示,但我有一些错误

private Map<String, String> listParents = new HashMap<String, String>();
private List<Map<listParents, String>> list = new ArrayList<Map<String, String>>();
私有映射listParents=newHashMap();
私有列表=新的ArrayList();
我怎样才能做到这一点,列表类型可以更改

谢谢, Fedor

列表=新的ArrayList()

但通常我不鼓励使用列表作为hashmap中的键。

list list=new ArrayList()


但通常我不鼓励使用列表作为hashmap中的键。

不能将对象用作类类型(您尝试使用
listParents
实例来定义映射中字符串到字符串的映射。我猜您来自
c
世界,在那里您可以
typedef
您的结构,但在这种情况下,您应该按照正确定义发布的答案之一进行操作,因为
Java
不支持typedef

您不能不要将对象用作类类型(您尝试使用
listParents
实例来定义映射中字符串到字符串的映射。我猜您来自
c
世界,在那里您可以
typedef
您的结构,但在这种情况下,您应该按照正确定义发布的答案之一进行操作,因为
Java
不支持typedefs

您想要的内容您试图这样做是不可能的,甚至在java中也不明显,因为泛型实际上只是语法提示。在编译时,不会对这些集合进行类型检查。泛型只是强制您只使用与泛型中给定类型对应的类。 您可以执行以下任一操作:

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

private List您试图做的事情在java中是不可能的,甚至是不可见的,因为泛型实际上只是语法暗示。在编译时,不会对这些集合进行类型检查。泛型只是强制您只使用与泛型中给定类型对应的类。
您可以执行以下任一操作:

private List<Map<List<?>, String>> list = new ArrayList<Map<String, String>>();
private list您是否将
Map
称为
listParents
?您是指
list
还是
Map
?您是否将
Map
称为
listParents
?您是指
list
还是
Map