我正在做一个我需要btree或b + tree数据结构的项目.有没有人知道btree或b + tree的现有实现(带插入,删除,搜索算法)?它应该接受字符串作为输入并形成这些字符串的btree或b + tree.
我需要一个不可变列表,我可以从中派生出第二个不可变列表,该列表保留前一个列表的所有元素以及 Java 中的一个附加元素(无需附加库)。
注意:这个问题类似于将单个元素添加到不可变集合的有效且优雅的方法是什么?但我需要一个清单,而且没有番石榴。
到目前为止我尝试过的:
var list = List.of(someArrayOfInitialElements);
var newList = Stream.concat(list.stream(), Stream.of(elementToAppend))
.collect(CollectorsCollectors.toUnmodifiableList());
Run Code Online (Sandbox Code Playgroud)
这会起作用,但创建一个流并一个一个地复制元素对我来说似乎效率低下。鉴于List.of()
将数据存储在基于字段或基于数组的数据结构中,您基本上可以批量复制内存。
有没有比使用流更有效的解决方案?我缺少的 Java 标准库中更好的数据结构?