将不可变转换为可变列表Java

she*_*221 6 java collections list immutability

我有一个返回不可变列表的方法。我想向其中添加元素,这就是为什么必须将其转换为可变列表的原因。当前,我从不可变列表中创建一个新的ArrayList,如下所示:

final List<someDTO> mutableList = new ArrayList<>(someDTO.getImmutableList());
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法,例如使用一些集合复制方法,java流或类似方法?

Ous*_* D. 5

老实说,这是最好的,但是另一个变体是:

someDTO.getImmutableList().stream().collect(toCollection(ArrayList::new));
Run Code Online (Sandbox Code Playgroud)

  • IMO,流是相对昂贵的,并且对于这样的琐碎操作,几乎不值得开销。 (2认同)
  • 答案中提到的@Vasan“说实话,这是最好的”,因此,我同意你的看法。我以为我会展示另一种方法。 (2认同)