java - 如何在列表中创建嵌套列表
问题描述
为什么这个声明
List<String> ls = new ArrayList<>(new ArrayList<>(new ArrayList<>(Arrays.asList("A"))));
不给我一个嵌套的 ArrayList 回来?我得到的是一个列表,里面有一个元素(“A”)。
解决方案
有一个构造函数ArrayList(Collection<? extends E> c)
,它ArrayList
基于集合中的元素创建一个,因此您可以调用new ArrayList(Arrays.asList("A"));
创建一个ArrayList
其中包含单个元素"A"
的(当需要具有初始值的可变列表时,有时可以看到此代码,因为Arrays.asList()
无法更改大小) .
但是,您在其new ArrayList(
之上添加新层的方式将调用相同的构造函数,从集合中获取元素并将它们放入单个数组列表中,而不是嵌套它们。因此,您不能使用该构造函数来创建嵌套列表。
您的代码等效于以下代码,如您所见,它始终只是一个字符串列表
List<String> ls = new ArrayList<>(Arrays.asList("A"));
ls = new ArrayList<>(ls);
ls = new ArrayList<>(ls);
推荐阅读
- list - 使用反斜杠修改列表项时 Ansible 出错
- python - 分析列的高度差异并在 Python 中选择最大差异
- javascript - Konva - 清除图层但保留背景
- php - 重新计算mysql中的运行量
- javascript - 为什么使用生成器时 const 的值会发生变化?
- python - Bitbake:如何构建特定的 python3 配方
- java - java - 如何在java spring的列表中有效重复元素?
- css - 如何删除超出 div 大小的内容
- php - Volley POST 字符串请求意外错误 500
- ruby-on-rails - 为什么新文件被阻止?