如何用另一种类型的元素替换 java.util.List 中的一个元素?

huangapple go评论85阅读模式
英文:

How to replace an element in a java.util.List with an element of another type?

问题

我有一个 list<P>(java.util.list)。
现在我想根据两个条件替换list<A>中的元素。

如果元素等于'a',则替换为'x';如果元素等于'b',则替换为'y'。
x和y的类型是Q。

做这个的最清晰/高效的方式是什么?
最好不使用for循环进行迭代。我可以使用流(Stream)/replaceAll,但这意味着违反了列表的类型。

英文:

I have a list&lt;P&gt; (java.util.list) .
Now I want to replace elements in list&lt;A&gt; based on two conditions.

If element == 'a' replace with 'x' and if element == 'b' replace with 'y'.
x and y are of type Q.

What is the cleanest / efficient way to do this?
Preferably, I do not want to iterate using a for loop. I can use a stream/replaceAll but that would mean violating the type of the list.

答案1

得分: 1

我弄清楚了。我可以使用(伪代码)
(list&lt;A&gt;).stream().forEach(r-&gt;{condition?list&lt;B&gt;.add(x):list&lt;B&gt;.add(y)})

在此之前初始化list< B >。

英文:

I figured it out. I can use (pseudocode)
(list&lt;A&gt;).stream().forEach(r-&gt;{condition?list&lt;B&gt;.add(x):list&lt;B&gt;.add(y)})

init list< B > before this.

huangapple
  • 本文由 发表于 2020年9月4日 10:53:01
  • 转载请务必保留本文链接:https://go.coder-hub.com/63734155.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定