我在 Sublime Text 3 中有 XML,我想在 Google Slides 中使用它作为示例。问题是当你复制文本时,你最终会得到纯文本,我想保持语法高亮,因为它更容易阅读。这可能吗?我需要一些 Sublime 包吗?
考虑一下我想通过的 Jest 测试
it('should be equal', function () {
const data1 = {
name: "Bob",
children: [
{
name: "Anne",
children: [
"Oliver",
"John"
]
},
{
name:"Katy"
}
]
}
const data2 = {
name: "Bob",
children: [
{
name:"Katy"
},
{
name: "Anne",
children: [
"John",
"Oliver",
]
}
]
}
expect(data1).toEqual(data2)
});
Run Code Online (Sandbox Code Playgroud)
data1和之间的唯一区别data2是数组的顺序children。是否有一个简单的解决方案来允许深度对象比较但忽略数组顺序?(这是一个简化的情况,我的对象更大/更深)
考虑这个代码
String[] colours1 = new String[]{"red", "green", "blue"};
String[] colours2 = new String[]{"red", "yellow", "blue"};
String[] colours3 = new String[]{"red", "green", "blue"};
List<String[]> distinct = Stream.of(colours1, colours2, colours3)
.distinct() // Do something here to compare arrays better
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我希望distinct列表包含 olny 2 元素colours1和colours2(因为 1 和 3 是等效的)。然而,因为流distinct()方法执行等于比较,它仍然包含所有 3 种颜色数组。我想要一个自定义的不同功能,您可以在其中提供比较器。在这种情况下Objects#deepEquals就足够了。有没有简单的方法来实现这一目标?
我有一个计算平均成本的流,代码看起来像这样
private Double calculateAverageCost(List<Item> items) {
return items.stream()
.mapToDouble(item -> item.cost)
.filter(cost -> cost > 0) // Ignore zero cost items
.average()
. // Something here to convert an OptionalDouble to value or null
}
Run Code Online (Sandbox Code Playgroud)
我需要返回值或null没有值的方法(例如,当所有成本为零时)。我的问题是不存在orElseNull的方法OptionalDouble做转换。我可以在另一个步骤中完成,例如
private Double calculateAverageCost(List<Item> items) {
final OptionalDouble average = items.stream()
.mapToDouble(item -> item.cost)
.filter(cost -> cost > 0) // Ignore zero cost items
.average();
return average.isPresent() ? average.getAsDouble() : null;
}
Run Code Online (Sandbox Code Playgroud)
我意识到这是一个“原始”流,我的方法返回盒装,Double但看起来这可能会有所帮助,类似于 ( Optional.empty().orElseGet(null))。
我缺少原因或更好的解决方案吗?