List list = new ArrayList<>(new HashMap());可以这样定义吗?泛型为啥是String而不是Map(String,String)?
List list = new ArrayList<>(new HashSet());

list和hashMap
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
在Java中,当您尝试创建一个列表并将其初始化为一个新的哈希映射时,语法上是可以这么做的,就像下面这样:
List<Map<String, String>> list = new ArrayList<>(new HashMap<>());
这里我们创建了一个
List
,其元素类型是Map<String, String>
。这意味着这个列表将存储键值对的映射,其中键和值都是字符串。然而,如果您想要创建一个列表,其中每个元素都是一个字符串,而不是一个整个映射,那么应该像这样定义:
List<String> list = new ArrayList<>();
对于第二个例子:
List list = new ArrayList<>(new HashSet<>());
这里我们创建了一个未指定类型的
List
,并且使用了HashSet
作为初始容量。虽然这样做在语法上没有错误,但为了提高代码可读性,建议指定列表的泛型参数,例如:List<String> list = new ArrayList<>(new HashSet<>());
这表明列表中的元素将是字符串。如果集合中的元素不是字符串,而是其他类型,比如整数,你应该相应地调整泛型参数,例如
List<Integer>
。总结一下,正确的代码应该是这样的:
// 如果你想存储Map<String, String> List<Map<String, String>> mapList = new ArrayList<>(); // 如果你想存储String List<String> stringList = new ArrayList<>(); // 使用HashSet初始化(推荐指定泛型) List<String> stringListFromSet = new ArrayList<>(new HashSet<>());
以上就是关于如何正确地使用
List
和HashMap
的解释。如果你有更具体的问题或需要进一步的帮助,请随时告诉我。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用