最简洁高效的方式是直接用arraylist构造方法传入hashset:一行代码、o(n)时间复杂度、新旧集合无引用关系;注意hashset无序,转换后顺序不固定,需有序时应选用linkedhashset或排序处理。

直接用 ArrayList 的构造方法传入 HashSet 即可,这是最简洁、高效的方式。
使用 ArrayList 构造器(推荐)
这是最常用也最推荐的做法,底层会自动遍历 HashSet 并把元素添加到新创建的 ArrayList 中:
- 代码简单,一行搞定
- 时间复杂度为 O(n),性能好
- 新列表与原 HashSet 无引用关系,修改互不影响
示例:
SetArrayList
使用 addAll 方法(适合已有 ArrayList)
如果已经有一个现成的 ArrayList,想把 HashSet 的内容加进去,可用 addAll:
- 不会新建对象,复用已有列表
- 注意:若原列表非空,结果会包含原有元素 + HashSet 元素
示例:
ArrayListlist.addAll(set);
注意事项
HashSet 本身是无序的,所以转换后的 ArrayList 中元素顺序不固定(取决于哈希值和扩容过程),不能依赖插入顺序。如需保持顺序,应改用 LinkedHashSet 或先排序再转:
- 若需按字母/自然顺序排列,可先对 HashSet 转成 Stream 再 sorted
- 若需按插入顺序,初始化时用 LinkedHashSet 替代 HashSet
不建议的方式:循环手动添加
虽然可行,但冗余且低效:
ArrayListfor (String s : set) {
list.add(s);
}
没必要写三行做一行能完成的事。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











