java替换数组中的元素_如何使⽤Java8流快速替换列表中的元
素
java替换数组中的元素
这篇⽂章最初发表在 ,这是⼀个博客,从的⾓度着眼于所有开源,Java和软件开发。
假设您有⼀个项⽬清单:
List<String> books = Arrays.asList(
"The Holy Cow: The Bovine Testament",
"True Hip Hop",
"Truth and Existence",
"The Big Book of Green Design"
);
(不要判断我。此 )
现在,您想创建⼀个新列表,其中仅将第三项替换为⼀些新值:
List<String> books = Arrays.asList(
"The Holy Cow: The Bovine Testament",
"True Hip Hop",
"Pregnancy For Dummies", // New book at index 2
"The Big Book of Green Design"
jdk怎么使用);
当然,您可以去修改原始列表:
books.set(2, "Pregnancy For Dummies");
…或创建原始列表的副本,然后修改该副本:
List<String> copy = new ArrayList<>(books);
copy.set(2, "Pregnancy For Dummies");
但是,如果要编写单⾏代码以以功能样式执⾏相同的操作, 使⽤编写以下 。
seq(books)
.zipWithIndex()
.map(t -> t.v2 == 2
"Pregnancy For Dummies"
: t.v1)
.toList();
使⽤JDK标准Streams API,事情会变得有些困难。 您可以这样写:
books.stream().limit(2),
Stream.of("Pregnancy For Dummies")
),
books.stream.skip(3)
).List());
这将是⼀个有点可惜,不过,作为流的第⼀部分将需要经过两次-⼀次为限,⼀次⽤于跳跃(另见我们约OFFSET分页SQL中的注意事项)。
迅捷还是不?
显然,如上所⽰,JDK API不会帮助您编写简洁的功能逻辑,并且“命令式”样式更加简单明了。 我们之前已经 。 这也是我们创建主要动机。
如果您正在寻功能更多的幸福,也请查看以下库:
java替换数组中的元素
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论